摘要:一浮动布局先让固定宽度的浮动使其脱离文档流。的值等于固定的宽度相等。负边距在普通文档流中的作用和效果负值,减少高度。的宽度必须要减去的宽度要与固定宽度保持一致。负值对该属性无效。
1.先让固定宽度的div浮动!使其脱离文档流。
2.margin-left的值等于固定div的宽度相等。
.aside{ float: left; width: 200px; background-color: red; } .content{ margin-left: 200px; background-color: blue; } <div class="aside"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore provident dolor in voluptatum tempore non, placeat obcaecati totam ut delectus libero excepturi distinctio asperiores odit nobis soluta, esse aspernatur beatae. div> <div class="content"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore provident dolor in voluptatum tempore non, placeat obcaecati totam ut delectus libero excepturi distinctio asperiores odit nobis soluta, esse aspernatur beatae. div>
是固定宽度的div脱离文档流。
利用marin负值可以使得,后面的div可以与前面的div 保持同行显示。
给包裹内容的div加margin-left 可以使得与左边的文字不重叠
解释:margin负值理论
a.当给一个元素设置margin 负值(top/left),该元素将在该方向上产生位移。
b.当给一个元素设置margin负值(bottom/right),这个元素并不会像你所预想的产生位移,而是将任何紧随其后的元素“拉”过来,覆盖在自己的上边。
c.负边距在普通文档流中的作用和效果(margin-bottom负值,减少高度)。
d.左和右的负边距对元素宽度的影响(margin-right 负值 没有设置宽度的情况,增加宽度)。
e.负边距对浮动元素的影响(margin-left负值:覆盖)。
.aside{ float: left; margin-right: -200px; width: 200px; background-color: red; } .content{ float: right; } .content .inner{ margin-left: 200px; background-color: blue; } <div class="aside"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore provident dolor in voluptatum tempore non, placeat obcaecati totam ut delectus libero excepturi distinctio asperiores odit nobis soluta, esse aspernatur beatae. div> <div class="content"> <div class="inner"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia labore facere delectus quaerat expedita, tenetur recusandae tempora eos natus suscipit voluptatum necessitatibus soluta voluptates modi ullam. Ab minima similique, illum! div> div>
再看一个负值的实例:ul下一排紧密排放多个li
<style> body,ul,li{ padding:0; margin:0;} ul,li{ list-style:none;} .container{ height:210px; width:460px; border:5px solid #000;} ul{ height:210px; overflow:hidden; margin-right:-20px;}/*一个负的margin-right,相当于把ul的宽度增加了20px*/ li{ height:100px; width:100px; background:#09F; float:left; margin-right:20px; margin-bottom:10px;} style> <div class="container"> <ul> <li>子元素1li> <li>子元素2li> <li>子元素3li> <li>子元素4li> <li>子元素5li> <li>子元素6li> <li>子元素7li> <li>子元素8li> ul> div>
.aside{ float: left; width: 200px; } .content{ float: right; width:calc(100% - 200px); } <div class="aside"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore provident dolor in voluptatum tempore non, placeat obcaecati totam ut delectus libero excepturi distinctio asperiores odit nobis soluta, esse aspernatur beatae. div> <div class="content"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore provident dolor in voluptatum tempore non, placeat obcaecati totam ut delectus libero excepturi distinctio asperiores odit nobis soluta, esse aspernatur beatae. div>
body{ display: flex; } .aside{ flex: 0 0 200px; background-color: red; } .content{ flex: 1; background-color:blue; } <div class="aside"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugiat magnam nihil nostrum, similique dolor deserunt voluptatem pariatur alias, ipsum, error quos quo accusantium. Deleniti neque, pariatur voluptates maxime quam perferendis! div> <div class="content"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur tempora sequi minima, placeat esse nulla dolor dolores praesentium illo, distinctio fugiat eligendi debitis animi ut impedit, magni vitae officiis, architecto. div>
简单解释下flex: 0 0 200px的用处,flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
.item { flex: none | [} ? || ]
该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。
建议优先使用这个属性,而不是多带带写三个分离的属性,因为浏览器会推算相关值。
flex-grow属性
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
.item { flex-grow:; /* default 0 */ }
如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
flex-shrink属性
flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
.item { flex-shrink:; /* default 1 */ }
如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。
负值对该属性无效。
flex-basis属性
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
.item { flex-basis:| auto ; /* default auto */ }
它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
那么现在应该明白flex: 0 0 200px的用处了吧。
参考:阮一峰老师:Flex 布局教程:语法篇
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/1539.html
摘要:一浮动布局先让固定宽度的浮动使其脱离文档流。的值等于固定的宽度相等。利用负值可以使得,后面的可以与前面的保持同行显示。的宽度必须要减去的宽度要与固定宽度保持一致。内容区域的直接写出即可。五左侧浮动,右侧阮一峰老师写的教程权威传送门 一.浮动布局 1.先让固定宽度的div浮动!使其脱离文档流。 2.margin-left的值等于固定div的宽度相等。 .aside{ ...
摘要:布局结果依然后前两种相似,代码如下。如果你还有好的方法,请一定给我留言哦欢迎光临小弟博客我的博客原文种方法实现边栏固定中间自适应的栏布局 设计一个页面,经常会遇到3栏布局,包括左右边栏和中间主题内容,一般情况下都是边栏固定,中间自适应,常用的方法主要有4种:自身浮动、绝对定位,margin负值和flex布局,今天主要一起看一看这种布局的实现,首先来看一看效果: See the Pen...
摘要:布局结果依然后前两种相似,代码如下。如果你还有好的方法,请一定给我留言哦欢迎光临小弟博客我的博客原文种方法实现边栏固定中间自适应的栏布局 设计一个页面,经常会遇到3栏布局,包括左右边栏和中间主题内容,一般情况下都是边栏固定,中间自适应,常用的方法主要有4种:自身浮动、绝对定位,margin负值和flex布局,今天主要一起看一看这种布局的实现,首先来看一看效果: See the Pen...
摘要:目录一大结构上的导航栏和内容区域两栏布局博客园为例腾讯课堂个人中心页慕课网个人中心页个人中心页二版的结构三类似九宫格布局的两列结构四图文两列布局左图右文字非垂直居中,左图,右固定行数的文字,右侧文字和左边图片垂直居中。目录:一、大结构上的导航栏和内容区域两栏布局1、博客园为例2、腾讯课堂个人中心页3、慕课网个人中心页4、github个人中心页二、mini版的nav+cont结构三、类似九宫格...
阅读 713·2023-04-25 19:43
阅读 3907·2021-11-30 14:52
阅读 3784·2021-11-30 14:52
阅读 3852·2021-11-29 11:00
阅读 3783·2021-11-29 11:00
阅读 3869·2021-11-29 11:00
阅读 3557·2021-11-29 11:00
阅读 6105·2021-11-29 11:00