CSS三:(CSS元素、浮动)

版权声明:一个苦逼初学者的原创小博客。 https://blog.csdn.net/SenZendao/article/details/82467977

上一篇就发了一个盒子模型,这篇说元素和浮动吧,定位肯定又是一整篇,先总结完这两块。

因为每个人的标准不太一样,所以我总结的属性肯定不全,但是都是常用的,所以想了解全部属性的我给大家分享一个网站:http://www.w3school.com.cn/css/css_reference.asp

1:CSS基本语法及页面引用
2:CSS文本设置
3:CSS颜色表示
4:CSS选择器
5:CSS盒子模型
6:CSS元素溢出
7:CSS块元素、内联元素、内联块元素
8:CSS浮动
9:CSS定位
10:background属性

CSS元素溢出

当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。
overflow的设置项:
1、visible 默认值。内容不会被修剪,会呈现在元素框之外。
2、hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。
3、scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
4、auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
5、inherit 规定应该从父元素继承 overflow 属性的值。

CSS块元素、内联元素、内联块元素

元素就是标签,布局中常用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。

块元素

块元素,也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd等等都是块元素,它在布局中的行为:
1.支持全部的样式
2.如果没有设置宽度,默认的宽度为父级宽度100%
3.盒子占据一行、即使设置了宽度

内联元素

内联元素,也可以称为行内元素,布局中常用的标签如:a、span、em、b、strong、i等等都是内联元素,它们在布局中的行为:
1.支持部分样式(不支持宽、高、margin上下、padding上下)
2.宽高由内容决定
3.盒子并在一行
4.代码换行,盒子之间会产生间距
5.子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性值设置垂直对齐方式
解决内联元素间隙的方法
1、去掉内联元素之间的换行
2、将内联元素的父级设置font-size为0,内联元素自身再设置font-size

内联块元素

内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和input元素的行为类似这种元素,但是也归类于内联元素,我们可以用display属性将块元素或者内联元素转化成这种元素。它们在布局中表现的行为:
1.支持全部样式
2.如果没有设置宽高,宽高由内容决定
3.盒子并在一行
4.代码换行,盒子会产生间距
5.子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式,用line-height属性值设置子元素垂直对齐方式
这三种元素,可以通过display属性来相互转化,不过实际开发中,块元素用得比较多,所以我们经常把内联元素转化为块元素,少量转化为内联块,而要使用内联元素时,直接使用内联元素,而不用块元素转化了。

display属性

display属性是用来设置元素的类型及隐藏的,常用的属性有:
1、none 元素隐藏且不占位置
2、block 元素以块元素显示,将行级转成块级元素
3、inline 元素以内联元素显示
4、inline-block 元素以内联块元素显示

CSS浮动

浮动就是将块级元素转成行级元素
这样可以让块级元素在一行里面显示,然后我们再使用盒子模型进行排版设置

文档流

文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。

浮动特性

1、浮动元素有左浮动(float:left)和右浮动(float:right)两种
2、浮动的元素会向左或向右浮动,碰到父元素边界、浮动元素、未浮动的元素才停下来
3、相邻浮动的块元素可以并在一行,超出父级宽度就换行
4、浮动让行内元素或块元素自动转化为行内块元素
5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
6、父元素内整体浮动的元素无法撑开父元素,需要清除浮动
7、浮动元素之间没有垂直margin的合并

清除浮动

1.父级上增加属性overflow:hidden
2.在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)
3.使用成熟的清浮动样式类,clearfix

.clearfix:after,.clearfix:before{ content: "";display: block;}
.clearfix:after{ clear:both;}
.clearfix{zoom:1;}

清除浮动的使用方法:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title>clearfix</title>
    <style type="text/css">
        .out{border:1px solid #F00;}
        .inner1{width:200px; height:200px; float:left; border:1px solid #00F;}
        .inner2{width:200px; height:200px; float:left; border:1px solid #0F0;}


        .clearfix:after {
            content: ".";     /*内容为“.”就是一个英文的句号而已。也可以不写。*/
            display: block;   /*加入的这个元素转换为块级元素。*/
            clear: both;      /*清除左右两边浮动。*/
            visibility: hidden; /*可见度设为隐藏。注意它和display:none;是有区别的。visibility:hidden;仍然占据空间,只是看不到而已;*/
            line-height: 0;     /*行高为0;*/
            height: 0;          /*高度为0;*/
            font-size:0;        /*字体大小为0;*/
        }
        .clearfix { *zoom:1;}   /*这是针对于IE6的,因为IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。具体意思的话,不用深究,听说微软的工程师自己都无法解释清楚。*/
    </style>
</head>
<body>
    <div class="out clearfix">
        <div class="inner1">inner1</div>
        <div class="inner2">inner2</div>
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/SenZendao/article/details/82467977