首页 > 代码库 > css基础--常用css属性02

css基础--常用css属性02

上篇地址:css基础--常用css属性01

本文参考菜鸟教程和w3school

1  浮动和清除浮动

在上篇的第十一节--定位中说道:

  CSS 有三种基本的定位机制:普通流、浮动和绝对定位。

普通流和绝对定位已经说完,接下来就是浮动了。

什么是浮动?

  CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。

  我的理解是:浮动将元素‘上浮’一层,并保留元素在上层对下层的投影的位置

请注意

  元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。

  一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

  浮动元素之后的元素将围绕它。

  浮动元素之前的元素将不会受到影响。

 

浮动:    float  =  left

              right

              none

              inherit

技术分享
<!DOCTYPE html><html lang="en"><head><style>img {    float:left;}</style></head><body><h1>hello world</h1><img src="l.jpg"/>lsdflkasdkfjalksjdlfkjasjdhkashdfkjasdfjfajsdhfkjahskjdffhakjshdfkjahsdkjfhakjsdfkajhsdkfjhakjsdhfajsddflsdflkasdkfjalksjdlfkjasjdhkashdfkjasdfjfajsdhfkjahskjdffhakjshdfkjahsdkjfhakjsdfkajhsdkfjhakjsdhfajsddflsdflkasdkfjalksjdlfkjasjdhkashdfkjasdfjfajsdhfkjahskjdffhakjshdfkjahsdkjfhakjsdfkajhsdkfjhakjsdhfajsddflsdflkasdkfjalksjdlfkjasjdhkashdfkjasdfjfajsdhfkjahskjdffhakjshdfkjahsdkjfhakjsdfkajhsdkfjhakjsdhfajsddf</body></html>
浮动实例

我们可以通过clear属性清除元素周围的浮动

clear    =    left/right/both/none/inherit

技术分享
<!DOCTYPE html><html><head><style>.thumbnail {float:left;width:110px;height:90px;margin:5px;}.text_line{clear:both;margin-bottom:2px;}</style></head><body><h3>Image Gallery</h3><p>Try resizing the window to see what happens when the images does not have enough room.</p><img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90"><img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80"><img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90"><img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90"><h3 class="text_line">Second row</h3><img class="thumbnail" src="/images/klematis_small.jpg" width="107" height="90"><img class="thumbnail" src="/images/klematis2_small.jpg" width="107" height="80"><img class="thumbnail" src="/images/klematis3_small.jpg" width="116" height="90"><img class="thumbnail" src="/images/klematis4_small.jpg" width="120" height="90"></body></html>
清除浮动实例

 

2  css伪类/伪元素

伪类的语法:

selector:pseudo-class {property:value;}

CSS类也可以使用伪类:伪类的名称不区分大小写

selector.class:pseudo-class {property:value;}

技术分享

 

以上就是css中的所有伪类。

其中专门针对链接的有四个:

:link     /* 未访问的链接 */
:visited       /* 已访问的链接 */
:hover      /* 鼠标划过链接 */     (这个hover伪类对其他块元素像<p>也是生效的,感兴趣的可以试试
:active     /* 已选中的链接 */

注意: 在CSS定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。

注意: 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

 

:focus很有意思

技术分享
<!DOCTYPE html><html lang="en"><head><style>    input:focus{        background-color: aquamarine;            }</style></head><body><h1>hello world</h1><form>    name:<input type="text" name="name"/>    job:<input type="text" name="job"/></form></body></html>
:focus实例

浏览器显示结果:

技术分享

:first-letter

该伪类仅适用于块级元素。也就是说<p> <h1> 列表 表格 表单等块级元素都适用。(不清楚什么是块级元素?请点这里)

技术分享
<!DOCTYPE html><html><head><style>li:first-letter{font-size:200%;color:#8A2BE2;}    p:first-letter{    font-size:200%;color:#8A2BE2;    }</style></head><body><ul>    <li>hello</li></ul>    <p>hello world</p></body></html>
first-letter实例

 

:first-line

该伪元素也仅适用于块元素。

 

:first-child

匹配父元素中第一个子元素

 

:before和:after

:before 选择器向选定的元素前插入内容。使用content属性(content详解)指定要插入的内容

技术分享
<!DOCTYPE html><html><head><style>p:before{content:"Read this -";}</style></head><body><p>My name is Donald</p><p>I live in Ducksburg</p><p><b>Note:</b> For :before to work in IE8, a DOCTYPE must be declared.</p></body></html>
:before实例

 

3  导航栏

绝大多数网页都会有导航栏,导航栏的重要性就不需要我说了。

导航栏大多是用列表来实现的。

技术分享
<!DOCTYPE html><html lang="en"><!DOCTYPE html><html><head><style>    ul {        list-style-type: none;        margin:0;        padding:5px;    }    a{        font-size: 28px;        color:white;        text-decoration: none;        text-transform: uppercase;            }    a:hover{        color:gainsboro;        background-color:darkgrey;    }    li{        float: left;        width:10%;        background-color: grey;    }</style></head><body><ul>    <li><a href="http://baidu.com" target="_blank">first</a></li>    <li><a href="http://baidu.com">second</a></li>    <li><a href="http://baidu.com">third</a></li>    <li><a href="http://baidu.com">fourth</a></li></ul></body></html>
不算丑的横向导航栏实例

 

css基础--常用css属性02