技术标签: 技能树 # HTML、CSS基础
<div class="left">left</div>
<div class="right">right</div>
body,div{
padding: 0 ;margin:0;}
.left,.right{
height: 200px;}
.left{
float: left;width: 200px;background-color:skyblue;}
.right{
margin-left: 200px; background-color: greenyellow;}
因为块级元素有流体特性,即默认会填充满外部容器,所以只需要设置margin,不需要设置width就可以让content填满剩余的部分。
这里margin-left的宽度和左栏宽度一样,是因为左栏浮动,脱离文档流。
<div class="left">left</div>
<div class="right">right</div>
body,div{
padding: 0 ;margin:0;}
.left,.right{
height: 200px;}
.left{
float: left;width: 200px;background-color:skyblue;}
.right{
overflow:hidden; background-color: greenyellow;}
核心思想是触发
BFC
。
回顾一下BFC的四种情况:
1、float
的值不是none。(right、left、inherit)
2、position
的值不是static或者relative。(absolute、fixed、 sticky)
3、display
的值是inline-block、table-cell、flex、table-caption或者inline-flex
4、overflow
的值不是visible(hidden、scroll、auto)
注意:这里左float,右只能是overflow才能实现两栏布局
触发了BFC的元素仍然保持
流体特性
,也就是说BFC元素虽然不与浮动交集,自动退避浮动元素宽度的距离,但本身作为普通元素的流体特性依然存在,反映在布局上就是自动填满除去浮动内容以外的剩余空间。
1、position:absolute时
left:200px; right:0;
在方法三有讲2、display:inline-block时
3、float:right时
4、overflow为其他情况时
<div class="wrap">
<div class="left">left</div>
<div class="right">right</div>
</div>
.wrap{
position : absolute; }
.left{
width: 200px; }
.right{
position: absolute; top: 0; left: 200px; right: 0}
通过设置
right:0;
来限制右边块级元素的宽度;left: 200px;
来自适应宽度。
<div class="wrap">
<div class="left">left</div>
<div class="right">right</div>
</div>
body,div{
padding: 0 ;margin:0;}
.wrap{
display: flex;}
.left,.right{
height: 200px;}
.left{
width: 200px;background-color:skyblue;}
.right{
flex: 1; background-color: greenyellow;}
不再赘述,原理同上面的
body,div{
padding: 0 ;margin:0;}
.wrap{
display:flex;}
.left,.right{
height: 200px;padding: 10px;}
.left{
background-color:skyblue;}
.right{
flex:1;background-color: yellow;}
和上面定宽一样,通过flex:1
综上所述,使用BFC和flex布局通用性高
.layout.float .left{
float:left;
width:300px;
background: red;
}
.layout.float .center{
background: yellow;
}
.layout.float .right{
float:right;
width:300px;
background: blue;
}
浮动布局是有局限性的,浮动元素是脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如高度塌陷等。
浮动布局的优点就是比较简单,兼容性也比较好。只要清除浮动做的好,是没有什么问题的。
延伸:你知道哪些清除浮动的方案?每种方案的有什么优缺点?
.left{
position: absolute;
left: 0;
width: 300px;
background-color: red;
}
.center{
position: absolute;
left: 300px;
right: 300px;
background-color: blue;
}
.right{
position: absolute;
right: 0;
width: 300px;
background-color: #3A2CAC;
}
我们需要选择给 左 中 右 都使用 absolute 绝对定位
绝对定位布局优点,很快捷,设置很方便,而且也不容易出问题,你可以很快的就能想出这种布局方式。
缺点就是,绝对定位是脱离文档流的,意味着下面的所有子元素也会脱离文档流,这就导致了这种方法的有效性和可使用性是比较差的。
.main {
display: flex;
}
.left{
width: 400px;
background-color: red;
}
.center{
background-color: blue;
word-break: break-word;/*可以不用*/
}
.right{
background-color: red;
width: 400px;
}
目前移动端的布局都是用flexbox。
felxbox的缺点就是不能兼容IE8及以下浏览器。
<div class="div">
<div class="box1"></div>
<div></div>
<div></div>
</div>
.box1{
background: red;
}
.div {
width: 100%;
display: grid;
grid-template-rows: 100px;
grid-template-columns: 300px auto 300px;
}
<div class="container">
<div class="main col">Main</div>
<div class="left col">Left</div>
<div class="right col">Right</div>
</div>
/* 两边定宽,中间自适用 */
body,html,.container{
height: 100%;
padding:0;
margin: 0;
}
.col{
float: left; /* 三个col都设置float: left,为了把left和right定位到左右部分 */
position:relative;
}
/*父元素空出左右栏位子: 因为上一步中,左右栏定位成功了,但是中间栏的内容会被遮盖住*/
.container{
padding:0 200px 0 100px;
}
/*左边栏*/
.left{
left:-100px;
width: 100px;
height:100%;
margin-left: -100%;
background: #ff69b4;
}
/*中间栏*/
.main{
width:100%;
height: 100%;
background: #659;
}
/*右边栏*/
.right{
right:-200px;
width:200px;
height:100%;
margin-left: -200px;
background: #ff69b4;
}
圣杯布局使用
float布局框架 , margin为负值 , position: relative定位
,不添加额外标签
<div class="container">
<div class="main col ">
<div class="main_inner">Main</div>
</div>
<div class="left col ">Left</div>
<div class="right col ">Right</div>
</div>
body,html,.container{
height: 100%;
padding:0;
margin: 0;
}
.col{
float: left; /* 把left和right定位到左右部分 */
}
.main{
width:100%;
height:100%;
background: #659;
}
.main_inner{
/* 处理中间栏的内容被遮盖问题 */
margin:0 200px 0 100px;
}
.left{
width: 100px;
height: 100%;
margin-left: -100%;
background: #ff69b4;
}
.right{
height:100%;
width:200px;
margin-left: -200px;
background: #ff69b4;
}
双飞翼布局的优点:
(1)主要的内容先加载的优化。
(2)兼容目前所有的主流浏览器,包括IE6在内。
(3)实现不同的布局方式,可以通过调整相关CSS属性即可实现。
圣杯布局和双飞翼布局达到的效果基本相同,都是侧边两栏宽度固定,中间栏宽度自适应
。 主要的不同之处就是在解决中间部分被挡住的问题时,采取的解决办法不一样.
圣杯布局是在父元素
上设置了padding-left和padding-right
,在给左右两边
的内容设置position为relative
,通过左移和右移来使得左右两边的内容得以很好的展现。
而双飞翼则是在center这个div中再加了一个div来放置内容,在给这个新的div
设置margin-left和margin-right
。
ROS Indigo learning_tf-05 now() 和 Time(0)的区别 (Python版) — waitForTransform() 函数我使用的虚拟机软件:VMware Workstation 11使用的Ubuntu系统:Ubuntu 14.04.4 LTSROS 版本:ROS Indigo一. 前言这一节要做的事情:使用 tf 的 now() 和 Time(0)...
1,管理工具》服务》Themes 设为auto 2,打开 DirectX 的 D3D 硬件加速: 看桌面属性,设置 -> 高级 -> 疑难问答 -> 硬件加速 -> 完全。运行 dxdiag.exe,打开Display选项卡,可看到 3 项全部启用了。最后,利用Windows updates在Windows Server 2003中安装DirectX 9.0a。 3. 启用声
SPI协议解析,链接如下https://blog.csdn.net/weiqifa0/article/details/82765892I2C协议解析,链接如下https://blog.csdn.net/weiqifa0/article/details/82765349串口UART串行总线协议https://blog.csdn.net/weiqifa0/article/detai...
在navicat中如果报了这个错误,则表示内存越界,需要重新注册windows的动态链接库;解决方案:打开cmd;在命令行中输入 for %1 in (%windir%\system32\*.dll)do regsvr32.exe /s %1 回车运行;等待动态链接库刷新完成,重启mysql和navicat即可。...
封面图片:《Python程序设计基础与应用》,董付国,机械工业出版社图书详情:https://item.jd.com/12433472.html===========os模块常用成员方法功...
华为java面试题中的九道单选时间:2014-12-26 17:41分享到:1.Java是从( )语言改进重新设计。A.Ada B.C++ C.Pasacal D.BASIC 答案:B2.下列语句哪一个正确( )A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD. 以上都不正确 答案:B3.下列说法...
比如要构造这样的字符串:<OnlineEdu> <head> <PassWord>****</PassWord> <ServiceCode>BS002</ServiceCode> </head> <body> <PeopleList> <PeopleInfo> <Idcard>320323199305
比如我的测试js支付的页面是 http://10.10.x.y/test/wxpay 。首先要将“商户功能”->支付测试 下的“支付测试目录”改成 http://10.10.x.y/test/。然后注意这句话“测试域名只能在公众号会话内测试才有效”。因此,要完成测试,你需要关注这个公众账号,让公众账号回复你这个链接“ http://10.10.x.y/test/wxpay”。这时候,
http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspxRemarksTheinnerHTMLproperty is valid for both block and inline elements. By definition, elements that do not have both an opening a...
文章目录一、注释`头部注释``单行注释与多行注释`二、排版规范`1.程序块采用缩进,缩进为4个空格`修改vim中Tab键的距离`2.函数编写``3.命令较长需分行书写,在低优先级操作符处划分新行,用'\'标识``4.一行只写一条语句``5.逻辑运算符&&、||和重定向、管道符前后要留空格``6.一个函数只完成一个功能,且不能超过100行``7.case语句格式``8.注释与上面的代码用空行隔开`三、变量规范`1.变量名由字母、数字、下划线组成, 只能以字母、下划线开头``2.尽量减少全局变量
Java使用RSA的公钥加密,私钥解密;私钥加密,公钥解密package org.system.common.util.RSA;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.binary.Base64;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Compone
文章目录头文件作用扩展举例头文件#include <string.h>作用strtok函数的作用是把字符串以规定的字符分割开:p = strtok(buf, "$"); p为指针,buf也是指针,这句代码的意思就是把buf中的字符串以"$"为分隔符分割开来,分割出来的字符串保存到指针p中。再次调用strtok函数时,把buf换成NULL,不需要再写buf。即:p =...