Normalize.css
是一种CSS reset的替代方案。它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。
知乎总结的html tags
html一共有114个标签,但html5有添加了一些标签,如nav、header、article、section、aside、footer等。
闭合标签的基本格式如下:
<标签名>文本内容</标签名>
可以给这个标签添加一些属性,比如:
<标签名 属性_1="属性值" 属性_2="属性值">文本内容</标签名>
标题、段落等文本元素都要求闭合标签,也就是要有一个开标签和一个闭标签,比如:
<标签名 属性_1="属性值" 属性_n="属性值" />
非文本内容是通过自闭合标签显示的。闭合标签与自闭合标签的区别在于,闭合标签包含的是会显示的实际内容,而自闭合标签只是给浏览器提供一个对要显示内容的引用。
<标签名 属性_1="属性值" 属性_n="属性值" />
** 块级元素盒子会扩展到与父元素同宽**
块级标签
行内元素盒子会“收缩包裹”其内容,并且会尽可能包紧。
行内标签:
CSS规则分两部分,即选择符和声明。声明又由两部分组成,即属性和值。声明包含在一对花括号内。
图中文字:selector:选择符;declaration:声明;property:属性;value:值;opening curly bracket:左花括号;closing curly bracket:右花括号。
对这个基本的结构,有三种方法可以进行扩展。
第一种方法:多个声明包含在一条规则里。
p {color:redfont-size:12pxfont-weight:bold}
这样,一条规则就可以把段落文本设置成红色,12像素大,粗体。
第二种方法:多个选择符组合在一起。如果想让h1、h2和h3的文本都变成蓝色,粗体,可以这样分别写:
但其实,把三个选择符组合在一起也可以,这样就能减少重复输入:
千万注意每个选择符之间要用逗号分隔(最后一个后面不用加)。
第三种方法:多条规则应用给一个选择符。 假设,你在写完前面那条规则后,又想只把h3变成斜体,那可以再为h3写一条规则:
用于选择特定元素的选择符又分三种。
上下文选择符的格式如下:
标签1 标签2 {声明}
上下文选择符,严格来讲(也就是CSS规范里),叫后代组合式选择符(descendant combinator selector),就是一组以空格分隔的标签名。用于选择作为指定祖先元素后代的标签。
article p {font-weight:bold}
这个例子中的上下文选择符表明,只有是article后代的p元素才会应用后面的样式。换句话说,上面这条规则的目标是位于article上下文中的p元素。
css class style 显示效果
多类选择符
<p class="specialtext featured">Here the span tag <span>may or may not</span>be styled.</p>
.specialtext .featured {font-size:120%}
多个类名,如这里的specialtext和featured,放在同一对引号里,用空格分隔。实际上,更准确的说法,就应该是HTML的class属性可以有多个空格分隔的值。要选择同时存在这两个类名的元素,可以这样写:
ID与类的写法相似,而且表示ID选择符的#(井号)的用法,也跟表示类选择符的.(句号)类似。
如果有一个段落像下面这样设定了ID属性
那么,相应的ID选择符就是这样的:
#specialtext {CSS样式声明}
ID的用途是在页面标记中唯一地标识一个特定的元素。它能够为我们编写CSS规则提供必要的上下文,排除无关的标记,而只选择该上下文中的标签。
相对来说,类是可以应用给任意多个页面中的任意多个HTML元素的公共标识符,以便我们为这些元素应用相同的CSS样式。而且,使用类也让为不同标签名的元素应用相同的样式成为可能。
规则一:包含ID的选择符胜过包含类的选择符,包含类的选择符胜过包含标签名的选择符。
规则二:如果几个不同来源都为同一个标签的同一个属性定义了样式,行内样式胜过嵌入样式,嵌入样式胜过链接样式。在链接的样式表中,具有相同特指度的样式,后声明的胜过先声明的。
规则三:设定的样式胜过继承的样式,此时不用考虑特指度(即显式设定优先)。
1、块级标签转换为行内标签:display:inline
2、行内标签转换为块级标签:display:block
3、转换为行内块标签:display:inline-block
通过对上面css的分析,我们可以初步理解class样式的设置以及对display属性的理解。
box-shadow:none|shadow
它的值包括 6 个参数:阴影类型,X轴位移,Y轴位移,阴影大小,阴影扩展和阴影颜色。此 6 个参数可以有选择地省略。
浏览器兼容性
Webkit支持:-webkit-box-shadow
Mozilla支持:-moz-box-shadow
IE9支持:box-shadow
IE8及以前:不支持
实用实例
简单效果:
img{
height:300px
-moz-box-shadow:5px 5px
-webkit-box-shadow:5px 5px
box-shadow:5px 5px
}
虚阴影效果:
img{
height:300px
-moz-box-shadow:2px 2px 10px #06c
-webkit-box-shadow:2px 2px 10px #06c
box-shadow:2px 2px 10px #06c
}
渐变阴影效果:
img{
height:300px
-moz-box-shadow:0 0 10px #06c
-webkit-box-shadow:0 0 10px #06c
box-shadow:0 0 10px #06c
}
带光晕效果
img{
height:300px
-moz-box-shadow:0 0 10px 10px #06c
-webkit-box-shadow:0 0 10px 10px #06c
box-shadow:0 0 10px 10px #06c
}
内阴影效果
img{
height:300px
-moz-box-shadow:inset 5px 5px 10px #06c
-webkit-box-shadow: inset 5px 5px 10px #06c
box-shadow: inset 5px 5px 10px #06c
}
彩色阴影
img{
height:300px
-moz-box-shadow:0 0 10px red,
2px 2px 10px 10px yellow,
4px 4px 12px 12px green
-webkit-box-shadow:0 0 10px red,
2px 2px 10px 10px yellow,
4px 4px 12px 12px green
box-shadow:0 0 10px red,
2px 2px 10px 10px yellow,
4px 4px 12px 12px green
}
在“CSS盒子模型”理论中,所有页面中的元素都可以看成一个盒子,并且占据着一定的页面空间。
一个页面由很多这样的盒子组成,这些盒子之间会互相影响,因此掌握盒子模型需要从两个方面来理解:一是理解单独一个盒子的内部结构,二是理解多个盒子之间的相互关系。
每个元素都看成一个盒子,盒子模型是由content(内容)、padding(内边距)、margin(外边距)和border(边框)这四个属性组成的。此外,在盒子模型中,还有宽度width和高度height两大辅助性属性。
记住,是所有的元素都可以看出一个盒子!
下图为一个CSS盒子模型的内部结构: