1.CSS样式初始化
不同的浏览器对有些HTML标签属性的默认值是不同的,为消除这种差异,需要对CSS进行初始化,即通过设置样式及其属性值,替代浏览器默认的属性值。
2.京东首页CSS初始化
(1)CSS初始化样式引入方式
采用引入外部样式表的方式进行CSS初始化
(2)相关代码解读
/* 京东CSS初始化 */
/* *为通配符,表示html所有标签 */
* {
margin: 0; /* 标签外边距为0*/
padding: 0; /* 标签内边距为0*/
}
/* em、i表示斜体标签 */
em,
i {
font-style: normal; /* 表示标签中内容不以斜体表示*/
}
/* li 表示列表标签 */
li {
list-style: none; /* 表示去掉列表的样式,如前面圆点等*/
}
/* img 表示图片标签 */
img {
border: 0; /* 以下两句表示 图片与同级别行内元素middle对齐*/
vertical-align: middle;
}
/* button 表示按钮标签 */
button {
cursor: pointer; /* 表示鼠标样式 小手 */
}
/* a 表示超链接标签 */
a {
color: #666;
text-decoration: none; /* 表示去掉超链接下划线 */
}
/* a:hover 表示a标签的动态伪类选择器 */
a:hover {
color: #c81623; /* 表示当鼠标悬停在超链接上时,自体变为红色 */
}
/* button、input表示按钮标签、表单输入标签 */
button,
input {
/* 设置默认字体,包括unicode编码的字体 */
font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB,
"\5B8B\4F53", sans-serif;
}
/* body 表示body标签*/
body {
/* css3属性(-webkit-font-smoothing)字体抗锯齿渲染,字体更为平滑 */
-webkit-font-smoothing: antialiased;
background-color: #fff;
font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial,
Hiragino Sans GB, "\5B8B\4F53", sans-serif;
color: #666;
}
/* 表示当class属性的值包含hide、none时的样式 */
.hide,
.none {
display: none; /* 表示隐藏元素,且该元素空间可以被其他元素使用*/
}
/* 表示伪元素选择器 用来清除浮动*/
.clearfix:after {
visibility: hidden; /* 为保证兼容性 必要的固定设置*/
clear: both; /* 清除浮动 必要的固定设置*/
display: block; /* 清除浮 必要的动固定设置*/
content: "."; /* 清除浮动 必要的固定设置*/
height: 0; /* 可选的固定设置*/
}
.clearfix {
/* 这是针对于IE6/7的,因为IE6/7不支持:after伪类,
让IE6/7的元素可以清除浮动来包裹内部元素。*/
*zoom: 1;
}
3.淘宝首页CSS初始化
(1)CSS初始化样式引入方式
采用内部样式的方式进行CSS初始化
(2)相关代码解读
淘宝在进行CSS样式初始化时,并没有采用通配符*的方式设置标签的内外边距,而是将具体的标签进行并集罗列。根据网上资料,通配符*,容易书写,但是在大型网站中,会初始化所有标签,会加大网站负荷,使得网站加载变慢。当然京东应该是做了优化的,不然网站体验也会很差。
/* 淘宝CSS初始化 */
/* 设置标签的内外边距为0 */
blockquote,
body,
button,
dd,
dl,
dt,
fieldset,
form,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
input,
legend,
li,
ol,
p,
pre,
td,
textarea,
th,
ul {
margin: 0;
padding: 0;
}
/* 设置字体大小、行高及默认字体 */
body,
button,
input,
select,
textarea {
font: 12px/1.5 tahoma, arial, "Hiragino Sans GB", "\5b8b\4f53",sans-serif;
}
/* 字体大小同body中设置的一样 */
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: 100%;
}
/* 字体不采用斜体展示 */
address,
cite,
dfn,
em,
var {
font-style: normal;
}
/* 设置默认字体 */
code,
kbd,
pre,
samp {
font-family: courier new, courier, monospace;
}
/* 设置标签为small的字体大小 */
small {
font-size: 12px;
}
/* 去掉字体列表样式 */
ol,
ul {
list-style: none;
}
/* 去掉a标签下划线 */
a {
text-decoration: none;
}
/* 设置动态伪类选择器,鼠标悬停其上时显示下划线 */
a:hover {
text-decoration: underline;
}
/* 设置垂直对齐方式,在右上角 */
sup {
vertical-align: text-top;
}
/* 设置垂直对齐方式,在右下角 */
sub {
vertical-align: text-bottom;
}
legend {
color: #000;
}
fieldset,
img {
border: 0;
}
button,
input,
select,
textarea {
font-size: 100%;
}
button {
border-radius: 0;
}
/* 设置表格相邻边框融合 */
table {
border-collapse: collapse;
border-spacing: 0;
}
4.寻找CSS样式初始化代码技巧
通常在CSS初始化代码中包含padding:0和margin:0的代码,表示将内外边距设置为0;当找到该代码时,一般是找到了CSS样式初始化的代码开头。
关于伪类和伪元素参见:Web前端开发-CSS中伪类和伪元素
关于垂直对齐方式参见:CSS中直角三角形、常规页码、垂直对齐方式设置
关于鼠标样式参见:CSS中鼠标样式、文本框轮廓线、文本溢出等
关于CSS中选择器类型参见:Web前端开发-CSS入门干货01 和Web前端开发-CSS入门干货02
关于CSS中浮动和清除浮动参见:Web前端开发-CSS布局-浮动和定位-入门干货