您现在的位置是:网站首页> 编程资料编程资料
详解CSS中clear:left/right的用法使用CSS3制作响应式导航菜单的方法CSS中使用clearfix清除浮动的方法CSS clear属性给float带来哪些影响css的border和clear属性使用方法和示例css浮动(float/clear)使用讲解css中的clear属性使用方法实例介绍浅谈CSS中的clear清除浮动
2021-09-05
797人已围观
简介 这篇文章主要介绍了详解CSS中clear:left/right的用法,作者以实例讲解了其在具体应用上对布局位置产生的影响,作者以实例需要的朋友可以参考下
一、理解clear: left/clear: right
当想到clear: left的时候,自然会认为是“清除左浮动”,clear: right是清除右浮动。
其实现在想想,这样的理解与表示是不严谨的欠考虑的。
一般,现在中文圈流传的表述是:
clear语法:
clear : none | left | right | both
取值:
none : 默认值。允许两边都可以有浮动对象
left : 不允许左边有浮动对象
right : 不允许右边有浮动对象
both : 不允许有浮动对象
w3.org官方的解释是:「元素盒子的边不能和前面的浮动元素相邻」。
我个人觉得官方解释更好一点。
无论是我“清除左/右浮动”,还是业界流传的“不允许左/右边有浮动对象”,其意思都是,设置的clear的元素让浮动元素如何如何。也就是我让别人如何如何~~大家可以仔细体会,细细感受下……
而官方的说法则是“设置了clear的元素不能怎样怎样”。也就是我自己如何如何~~大家可以再次感受下……
为何官方解释更好呢?难道是“己所不欲勿施于人”的缘故?哈,这个解释赞的,方便记忆。更通俗的原因是:
务必记住这句话:“float是魔鬼,会影响其他相邻元素;但是clear是小白,其只会影响自身,不会对其他相邻元素造成影响!”
但是,官方的解释似乎拗口,缺少点灵性。于是,我根据自己的感性认知,做了如下理解:
clear语法:
clear : none | left | right | both
取值:
none : 默认值。
left : 左侧抗浮动
right : 右侧抗浮动
both : 两侧抗浮动
“抗”这个拟人化的动词的发起者是设置了clear属性的元素,既形象又释义准确。
实例出真知
您可以狠狠地点击这里:clear:left/right的作用效果demo
例如上图所示的clear:left作用示意:图片左浮动,化身魔鬼,要影响后面相邻的元素。一般的元素都逃不了被影响被束缚的命运。除非拥有clear技能。例如,这里clear:left左侧抗浮动,也就是,左侧的浮动根本就奈何不了我——我还是原原本本在下面显示。
但是,如果图片是右浮动,则clear:left仍逃不过沦陷的命运,可以看到父级容器的高度塌陷了!
单纯的clear:left就像是招潮蟹,一侧雄起,一侧不举。
因此,考虑到通用性,在抗浮动的处理中,我们都是使用clear:both. 用意很明显:我不必关心你是左浮动还是右浮动,我都通通免疫。
因此,我们才会有下面这段雕琢后的清除浮动通用CSS:
- .fix { *zoom: 1; }
- .fix:after { content: ''; display: table; clear: both; }
下面又有问题了,貌似我们接触的clear基本上都是both值,似乎left, right值的出现就是鸡肋,没什么用。真的是这样吗?
二、clear:left/right的实际用途
clear:left/right最实际也是最常见的用途就是实现垂直环绕布局。
出个简单的题目,下图所示的布局实现,你的HTML结构会是?
哈,我猜想下,估计你会把“头像img”和“姓名”放在同一个父级容器中,而这个父级容器左浮动;然后右侧的信息元素浮动跟随(自适应布局),对不对?
这是业界主流做法,其实是没什么问题的?
不过,你有没有细细思考过这样一个问题:“为何大家几乎都是这种HTML结构设计?”
实际上,按照我不专业的理解,头像、姓名、自我描述应该是平级的兄弟关系。从语义来看,貌似“头像、姓名”硬生生变成儿子和女儿是不妥的吧~~
当我们只知道票子放银行钱会变多,我们就只会存钱理财。同样的,并不是我们不想尝试其他的结构实现布局,而是,我们不知道方法。说穿了,就是对clear:left/right理解不透,不够重视!
如何“头像”、“姓名”、“自我描述”三兄弟平起平坐,同时达到我们想要的布局效果呢?就是借助clear:left, 半壁clear属性配合float属性可以实现“垂直环绕布局”。
何为“垂直环绕布局”?上面提供的demo中有示意:
两个图片实际上都是右浮动(float: right)的,这种情况下,显然,图片会是一行排排站。但是,如果后面一张图片设置了右侧抗浮动声明:clear: right. 则,后面一张图片就会落下来,形成垂直布局;加上自身的浮动特性依旧存在,于是,两张图片犹如一个浮动整体。这就是典型的“垂直环绕布局”。
于是,我们如下HTML以及CSS,就有符合题目要求的新型布局方式啦!
- "width:500px;font-size:12px;overflow:hidden;_zoom:1;">
- "float:left;width:96px;...">头像
- "float:left;clear:left;...">姓名
"margin-left:106px;...">我是一个帅哥……
至此,三兄弟终于平起平坐啦!
相关内容
- 举例详解CSS中的cursor属性CSS中cursor属性的鼠标样式明细css cursor 的可选值(鼠标的各种样式)CSS cursor 属性 -- 鼠标指针样式效果
- CSS设计之页面滚动条出现时防止页面跳动的方法前端页面弹框遮罩禁止页面滚动使用overflow: hidden来禁用页面滚动条纯css 实现footer 一直在页面底部,不随页面滚动HTML页面滚动时部分内容位置固定不滚动的实现
- 使用CSS代码的空格实现中文对齐的方法CSS实现让同一行文字和输入框对齐的方法CSS实现同一行的图片和文字垂直居中对齐的方法CSS强制换行对齐的实现方法
- 深入理解CSS的height:100%和height:inherit之间的使用区别CSS 继承 inherit属性的方法CSS中的inherit使用技巧小结CSS中的两个特殊值用于控制层叠的inherit和initial的方法
- 使用CSS中的meta实现web定时刷新或跳转的方法如何使用URL跳转解决Web服务80端口被屏蔽的问题?Web前端页面跳转并取到值
- 利用CSS3实现圆角的outline效果的教程使用CSS实现outline切换的动画效果css去掉点击连接时所产生的虚线边框技巧兼容符合w3c标准的浏览器CSS教程:text-indent隐藏文字出现虚线框outline-CSS教程-网页制作-网页CSS轮廓outline的具体使用
- 浅谈CSS编程的OOCSS和SMACSS设计模式CSS实现连续字符换行的方法纯CSS实现美观大方的网页柱状图效果纯CSS实现鼠标悬停提示的方法
- CSS框架开发指南CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 使用CSS3制作响应式导航菜单的方法浅谈CSS中display/float/position属性值的相互影响css(display,float,position)深入理解老生常谈css中float的用法CSS使用float属性设置浮动元素的实例教程使用CSS的overflow属性防止float撑开div的方法CSS基础知识之float详解理解CSS浮动float、定位positionCSS重要属性之float学习心得(分享)
- 使用CSS3来制作消息提醒框