博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端-----伪元素选择器 和浮动
阅读量:5010 次
发布时间:2019-06-12

本文共 5867 字,大约阅读时间需要 19 分钟。

1,清除浮动

display:block     变成块级标签

display:none      隐藏可见元素 让元素不占位置

visibility:hidden     可见元素隐藏  隐藏完占位置

clear:both       清除浮动  

 

 

text-align:center  文本居中

line-height:       设置行间距离

 

 

 

浮动

浮动是css里面布局最多的一个属性,也是很重要的一个属性。

float:表示浮动的意思。它有四个值。

  • none: 表示不浮动,默认
  • left: 表示左浮动
  • right:表示右浮动

看一个例子

html结构:

路飞学城

css样式:

.box1{     width: 300px;     height: 300px;     background-color: red;     float:left;  } .box2{     width: 400px;     height: 400px;     background-color: green;     float:right;   }   span{     float: left;     width: 100px;     height: 200px;     background-color: yellow;    }

我们会发现,三个元素并排显示,.box1和span因为是左浮动,紧挨在一起,这种现象贴边。.box2盒子因为右浮动,所以紧靠着右边。

 

那么浮动如果大家想学好,一定要知道它的四大特性

1.浮动的元素脱标

2.浮动的元素互相贴靠

3.浮动的元素由"子围"效果

4.收缩的效果

 

浮动元素脱标

脱标:就是脱离了标准文档流

 

看例子

小红
小黄
小马哥 小马哥
.box1{            width: 200px;            height: 200px;            background-color: red;            float: left;                }        .box2{            width: 400px;            height: 400px;            background-color: yellow;                }        span{            background-color: green;            float: left;            width: 300px;            height: 50px;        }

效果:红色盒子压盖住了黄色的盒子,一个行内的span标签竟然能够设置宽高了。

原因1:小红设置了浮动,小黄没有设置浮动,小红脱离了标准文档流,其实就是它不在页面中占位置了,此时浏览器认为小黄是标准文档流中的第一个盒子。所以就渲染到了页面中的第一个位置上。这种现象,也有一种叫法,浮动元素“飘起来了”,但我不建议大家这样叫。

原因2:所有的标签一旦设置浮动,就能够并排,并且都不区分行内、块状元素,都能够设置宽高

浮动元素互相贴靠

看例子

html结构

1
2
3

css样式

.box1{            width: 100px;            height: 400px;            float: left;            background-color: red;        }        .box2{            width: 150px;                   height: 450px;            float: left;            background-color: yellow;        }        .box3{            width: 300px;            height: 300px;            float: left;            background-color: green;        }

效果发现:

如果父元素有足够的空间,那么3哥紧靠着2哥,2哥紧靠着1哥,1哥靠着边。

如果没有足够的空间,那么就会靠着1哥,如果再没有足够的空间靠着1哥,自己往边靠

 

浮动元素字围效果

html结构:

123路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞路飞

 

css样式:

*{            padding: 0;            margin: 0;        }        div{            float: left;        }        p{            background-color: #666;        }

效果发现:所谓字围效果,当div浮动,p不浮动,div遮盖住了p,div的层级提高,但是p中的文字不会被遮盖,此时就形成了字围效果。

浮动元素紧凑效果

收缩:一个浮动元素。如果没有设置width,那么就自动收缩为文字的宽度(这点跟行内元素很像)

html结构:

alex

css样式:

div{    float: left;    background-color: red;}

 

大家一定要谨记:关于浮动,我们初期一定要遵循一个原则,永远不是一个盒子单独浮动,要浮动就要一起浮动。另外,有浮动,一定要清除浮动,

 

为什么要清除浮动

在页面布局的时候,每个结构中的父元素的高度,我们一般不会设置。(为什么?)

大家想,如果我第一版的页面的写完了,感觉非常爽,突然隔了一个月,老板说页面某一块的区域,我要加点内容,或者我觉得图片要缩小一下。这样的需求在工作中非常常见的。真想打他啊。那么此时作为一个前端小白,肯定是去每个地方加内容,改图片,然后修改父盒子的高度。那问题来了,这样不影响开发效率吗?答案是肯定的。

看一个效果:

html效果:

css样式:

*{            padding: 0;            margin: 0;        }        .father{            width: 1126px;            /*子元素浮动 父盒子一般不设置高度*/            /*出现这种问题,我们要清除浮动带来影响*/            /*height: 300px;*/        }        .box1{            width: 200px;                        height: 500px;            float: left;            background-color: red;        }        .box2{            width: 300px;            height: 200px;            float: left;            background-color: green;        }        .box3{            width: 400px;            float: left;            height: 100px;            background-color: blue;        }        .father2{            width: 1126px;            height: 600px;            background-color: purple;        }

效果发现:如果不给父盒子一个高度,那么浮动子元素是不会填充父盒子的高度,那么此时.father2的盒子就会跑到第一个位置上,影响页面布局。

那么我们知道,浮动元素确实能实现我们页面元素并排的效果,这是它的好处,同时它还带来了页面布局极大的错乱!!!所以我们要清除浮动

还好还好。我们有多种清除浮动的方法,在这里给大家介绍四种:

  1. 给父盒子设置高度
  2. clear:both
  3. 伪元素清除法
  4. overflow:hidden

给父盒子设置高度

这个方法给大家上个代码介绍,它的使用不灵活,一般会常用页面中固定高度的,并且子元素并排显示的布局。比如:导航栏

clear:both

clear:意思就是清除的意思。

有三个值:

left:当前元素左边不允许有浮动元素

right:当前元素右边不允许有浮动元素

both:当前元素左右两边不允许有浮动元素

给浮动元素的后面加一个空的div,并且该元素不浮动,然后设置clear:both。

html结构:

  • Python
  • web
  • linux

css样式

*{            padding: 0;            margin: 0;        }        ul{            list-style: none;                }        div{            width: 400px;                }                div ul li {            float: left;            width: 100px;            height: 40px;            background-color: red;        }        .box{            width: 200px;            height: 100px;            background-color: yellow;        }        .clear{            clear: both;        }

 

伪元素清除法(常用)

给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置

.clearfix:after{    /*必须要写这三句话*/    content: '.';    clear: both;    display: block;}

新浪首页推荐伪元素清除法的写法

/*新浪首页清除浮动伪元素方法*/              content: ".";                display: block;                height: 0;                clear: both;                visibility: hidden

overflow:hidden(常用)

overflow属性规定当内容溢出元素框时发生的事情。

说明:

这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

 

有五个值:

描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

转载于:https://www.cnblogs.com/liuafan/p/9445061.html

你可能感兴趣的文章
获取NVIDIA显卡的温度
查看>>
CC_CALLBACK之间的区别
查看>>
(mark)Oracle Update Statements
查看>>
查看mysql连接数和状态
查看>>
Dijkstra算法
查看>>
Deep Learning 9: Performance
查看>>
面试题61 把二叉树打印成多行
查看>>
C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
查看>>
sqlce wp
查看>>
[转]Windows Shell 编程 第十一章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987992】...
查看>>
修改presto新版源码让他支持redash数据库
查看>>
Javascript的书写位置
查看>>
树-线索二叉树
查看>>
JAVA遇见HTML——Servlet篇:Servlet基础
查看>>
第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除...
查看>>
MySQL卸载重安装异常解决
查看>>
[转载]CMMI5访谈学习笔记(项目经理角色)
查看>>
python--继承关系
查看>>
LintCode 532: Reverse Pairs
查看>>
Python3列表、元组、字典、集合的方法
查看>>