<--!内联样式--> <p style="color:sienna;margin-left:20px">这是一个段落。</p> <--!内部样式表--> <style> 选择器 {属性名称: 属性值;} h2 {color: red;} </style> <--!外部样式表,HTML引用声明--> <head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> /* .css文件 */ h {color:sienna;} p {margin-left:20px;} body {background-image:url(/images/back40.gif);}
<style> body { color: green; } <--!以下样式会覆盖上面body样式--> .pink-text{ color:pink; } </style> <body> <h1 class="pink-text">Hello World!</h1> </body> .pink-text { color: pink; } <--!一样下面的会覆盖前面的,而不会取决class在元素中的前后--> .blue-text{ color:blue; } </style> <body> <h1 class="blue-text pink-text ">Hello World!</h1> </body> <--! id优先级>class优先级 --> #orange-text{ color:orange; } .pink-text { color: pink; } .blue-text { color: blue; } </style> <body> <h1 class="pink-text blue-text" id='orange-text'>Hello World!</h1> </body> #orange-text { color: orange ; } <--!尚方宝剑在手,此时又是他生效了哦--> .pink-text { color: pink !important; } .blue-text { color: blue; } </style> <h1 id="orange-text" class="pink-text blue-text" style="color: white">Hello World!</h1>
p 选择全部<p>元素 { background-color:yellow; } h1,p 选择全部<h1>元素和<p>元素 { background-color:yellow; } div p 选择<div>元素内的全部<p>元素 { background-color:yellow; } div>p 选择全部父级是 <div> 元素的 <p> 元素 { background-color:yellow; } div+p 选择全部紧接着<div>元素以后的<p>元素 { background-color:yellow; }
#firstname 选择全部id="firstname"的元素
{
background-color:yellow;
}
<--! 注意同一个ID只能在一个HTML文件中出现一次,可联想为ID card -->
.intro 选择全部class="intro"的元素 { background-color:yellow; }
<--! 注意同一个class在一个HTML文件中可屡次使用 -->
a[target] 选择全部带有target属性元素
{
background-color:yellow;
}
a[target=_blank] 选择全部使用target="-blank"的元素
{
background-color:yellow;
}
[title~=flower] 选择标题属性包含单词"flower"的全部元素
{
background-color:yellow;
}
[lang|=en] 选择一个lang属性的起始值="EN"的全部元素
{
background-color:yellow;
}
伪元素:控制的内容和元素是没有差异的,可是它自己只是基于元素的抽象,并不存在于文档中,因此称为伪元素。如first-letter,first-line等。css
伪类:因为状态的变化是非静态的,因此元素达到一个特定状态时,它可能获得一个伪类的样式;当状态改变时,它又会失去这个样式。由此能够看出,它的功能和class有些相似,但它是基于文档以外的抽象,因此叫伪类 。 如anchor,first-child等。html
<--! 伪元素使用方法 --> selector:pseudo-element {property:value;} selector.class:pseudo-element {property:value;} p:first-letter { color:#ff0000; font-size:xx-large; } <--! 伪类使用方法 --> selector:pseudo-class {property:value;} selector.class:pseudo-class {property:value;} <html> <head> <style> <--! p标签第一行变蓝 --> p:first-child { color:blue; } </style> </head> <body> <p>I am a strong man.</p> <p>I am a strong man.</p> </body> </html>
全部HTML元素能够看做盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。segmentfault
盒模型容许咱们在其它元素和周围元素边框之间的空间放置元素。下面的图片说明了盒子模型(Box Model):浏览器
下面的例子中的元素的总宽度为300px:布局
width:250px;
padding:10px;
border:5px solid gray;
margin:10px;
CSS定位属性容许你为一个元素定位。它也能够将一个元素放在另外一个元素后面,并指定一个元素的内容太大时,应该发生什么。post
元素可使用的顶部,底部,左侧和右侧属性定位。然而,这些属性没法工做,除非事先设定position属性。他们也有不一样的工做方式,这取决于定位方法.字体
有四种不一样的定位方法。url
HTML元素的默认值,即没有定位,元素出如今正常的流中。spa
静态定位的元素不会受到top, bottom, left, right影响。设计
元素的位置相对于浏览器窗口是固定位置。
即便窗口是滚动的它也不会移动:
p.pos_fixed
{
position:fixed;
top:30px;
right:5px;
}
相对定位元素的定位是相对其正常位置。能够移动的相对定位元素的内容和相互重叠的元素,它本来所占的空间不会改变。
h2.pos_left
{
position:relative;
left:-20px;
}
h2.pos_right
{
position:relative;
left:20px;
}
绝对定位的元素的位置相对于最近的已定位父元素,若是元素没有已定位的父元素,那么它的位置相对于<html>:
h2
{
position:absolute;
left:100px;
top:150px;
}
Absolutely定位使元素的位置与文档流无关,所以不占据空间。Absolutely定位的元素和其余元素重叠。
元素的定位与文档流无关,因此它们能够覆盖页面上的其它元素。z-index属性指定了一个元素的堆叠顺序(哪一个元素应该放在前面,或后面)
一个元素能够有正数或负数的堆叠顺序:
img
{
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
具备更高堆叠顺序的元素老是在较低的堆叠顺序元素的前面。
注意: 若是两个定位元素重叠,没有指定z - index,最后定位在HTML代码中的元素将被显示在最前面。
CSS float 属性定义元素在哪一个方向浮动,浮动元素会生成一个块级框,直到该块级框的外边缘碰到包含框或者其余的浮动框为止。默认块级标签会独占一行,用float可让块级标签浮动在一块儿。
元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。一个浮动元素会尽可能向左或向右移动,直到它的外边缘碰到包含框或另外一个浮动框的边框为止。
浮动元素以后的元素将围绕它。浮动元素以前的元素将不会受到影响。
<--! 右浮动 --> img { float:right; } <--! 并列浮动 --> .thumbnail { float:left; width:110px; height:90px; margin:5px; } <--! 清除浮动 --> .text_line { clear:both; }
最后,关于伪类和伪元素的区别,能够参考以下连接:
1.CSS3伪类和伪元素的特性和区别:http://www.javashuo.com/article/p-hpvzweoj-g.html
2.详解 CSS 属性 - 伪类和伪元素的区别:http://www.javashuo.com/article/p-diaxzxtr-gu.html