HTML5+CSS3常见布局方式
1、等高布局
1.1 代码
等高布局是指子元素在父元素中高度相等的布局方式
<div class="father">
<div class="f1">
这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变
这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变
这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变
</div>
<div class="f2">
这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变 这是世界上付首付款不包括不可变
</div>
</div>
<style>
.father {
width: 600px;
overflow: hidden;
margin: 20px auto;
}
.f1 {
background-color: #888;
}
.f2 {
background-color: bisque;
}
.f1,
.f2 {
float: left;
width: 300px;
padding-bottom: 9999px;
margin-bottom: -9999px;
}
</style>
1.2 等高布局总结:
- 父元素设置宽度,设置overflow:hidden;
- 子元素设置左浮动,宽度,padding-bottom:9999px;margin-bottom:-9999px
2、圣杯布局
2.1 代码
圣杯布局是一种三列结构,左右两边定宽,中间自适应,能根据屏幕大小做响应的布局方式。
<div class="father">
<div class="center">center</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
<style>
.father{
padding: 0 300px 0 200px;
min-width: 200px;
height: 300px;
}
.center, .left, .right{
float: left;
position: relative;
height: 100%
}
.left{
width: 200px;
left: -200px;
margin-left: -100%;
background-color: blue;
}
.right{
width: 300px;
margin-right: -300px;
background-color: burlywood;
}
.center{
width: 100%;
background: blanchedalmond;
}
</style>
2.2 圣杯布局总结
- 父元素设置padding:0 右div宽 0 左div宽;设置min-width:左div宽度;height:200px
- 设置子div左浮动,相对定位
- 设置中间div宽度100%
- 设置左div的left:-左div宽度,margin-left:-100%
- 设置右div的margin-right:-右div宽度
3、双飞翼布局
3.1 代码
双飞翼布局与圣杯布局大体上一样,但是不需要使用position;relative。
<div class="father">
<div class="center">
<div class="con">
哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星哈时间冻结三星
</div>
</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
<style>
.father{
height: 300px;
min-width: 700px;
}
.father div{
height: 100%;
float: left;
}
.center{
width: 100%;
background: #ccc;
}
.left{
width: 200px;
background: #999;
margin-left: -100%;
}
.right{
width: 300px;
background: #666;
margin-left: -300px;
}
.con{
padding-left: 200px;
padding-right: 300px;
}
</style>
3.2 双飞翼布局总结:
- 先写center盒子
- center,left,right盒子浮动,center的盒子width:100%;
- 给left盒子设置margin-left:-100%;
- 给right盒子设置margin-left:-自己的宽度
- 在center的盒子中放一个放内容的盒子,然后设置padding-left:left盒子的宽;padding-right:right盒子的宽
- 给父元素设置有效宽min-width:left盒子的宽+right盒子的宽+center预留的宽
4、rem布局
rem是一种相对单位,类似em,指的是相对父元素字体大小。
<div class="wrap">
<div class="box">这是一个盒子</div>
</div>
<style>
.wrap{
font-size:20px;
}
.box{
font-size:2rem;
}
</style>
5、弹性盒布局
5.1 原理
弹性盒是一种新的布局手段,用于代替浮动来布局页面;而弹性盒分为弹性容器和弹性元素。若要使用弹性盒布局,需要先设置div的display:flex;即将div这个对象作为弹性伸缩盒显示(容器)。弹性容器默认在第一行显示,即它的弹性属性是:flex-direction:row。常见的弹性属性如下:
5.2 常见属性
弹性属性 | 描述 | 属性值 |
---|---|---|
flex-direction | 决定主轴(x抽)的方向 | row(默认值)主轴为水平方向,起点在左端;row-reverse:主轴为水平方向,起点在右端;column:主轴为垂直方向,起点在上沿;column-reverse:主轴为垂直方向,起点在下沿 |
justify-content | 定义了项目在主轴上的对齐方式 | flex-start(默认值)左对齐;flex-end:右对齐;center:居中;space-between:两端对齐,项目之间的间隔都相等,弹性盒子元素会平均地分布在行里,两端靠边;space-around:每个项目两侧的间隔相等 |
align-items | 定义项目在侧轴(纵轴)方向上的对齐方式 | flex-start:侧轴轴的起点对齐;flex-end:侧轴轴的终点对齐; center:侧轴轴的中点对齐;baseline: 项目的第一行文字的基线对齐;stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度 |
flex-wrap | 如果一条轴线排不下,如何换行 | nowrap(默认):不换行;wrap:换行,第一行在上方;wrap-reverse:换行,第一行在下方 |
order | 定义项目的排列顺序 | 默认是0不做排序;值越大越靠后;若排序的值相同,按照你的先后顺序进行排序 |
flex-grow | 定义项目的放大比例 | 默认是0;若你的子元素的宽度不够,也不做放大比例 |
flex-shrink | 定义项目的缩小比例 | 默认是0;子元素空间不足,也不会进行缩小比例 |
6、普通的响应式布局
响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局
6.1 原理
使用媒体查询方式进行不同尺寸下的css更改。
6.2 媒体查询
@media screen and (max-width: 960px){
body{
background: #000;
}
}
// 上面这段代码里面有个screen,是在告知设备在打印页面时使用衬线字体,在屏幕上显示时用无衬线字体。可以直接省去,如:
@media (max-width: 960px){
body{
background: #000;
}
}
@media screen and (max-device-width:960px){
body{
background:red;
}
}
// 这里表示当窗口尺寸等于960px时,body的背景颜色是red。
@media screen and (min-width:960px){
body{
background:orange;
}
}
// 这里表示当窗口尺寸大于960px时,body的背景颜色是orange。
@media screen and (min-width:960px) and (max-width:1200px){
body{
background:yellow;
}
}
// 这里表示当窗口尺寸大于960px并小于1200px时,body的背景颜色是yellow。
6.3 与自适应布局的区别
自适应是指在不同大小的设备上呈现相同的网页;响应式布局是指同一张网页自动适应不同大小的屏幕,根据屏幕的宽度,自动调节网页的内容大小。
6.4 实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>武汉亿房网</title>
<style>
* {
padding: 0;
list-style: none;
margin: 0;
}
body,
html {
width: 100%;
height: 100%;
background: #000;
}
.wrap {
width: 984px;
margin: 0 auto;
}
.title {
color: #ff9900;
padding-top: 35px;
}
.nav {
width: 100%;
height: 50px;
}
.nav li{
background: #666633;
float: left;
width: 25%;
line-height: 50px;
text-align: center;
font-size: 12px;
color: #fff;
}
.con{
overflow: hidden;
margin-top: 12px;
}
.left{
width: 726px;
float: left;
background: #fff;
border-radius: 20px;
padding: 0 0px 25px;
}
.left p{
padding: 0 32px
}
.right{
width: 240px;
float: right;
border-radius: 20px;
}
.left h3{
padding-top: 12px;
padding-left: 12px;
}
.rigth_con1{
background: #fff;
border-radius: 20px;
height: 220px;
margin-bottom: 10px;
}
.rigth_con1 ul{
display: flex;
flex-wrap: wrap;
padding: 10px;
}
.rigth_con1 li{
width: 33.33%;
margin-bottom: 10px;
}
.rigth_con1 li img{
width: 100%;
}
.footer{
height: 36px;
background: #666699;
line-height: 36px;
text-align: center;
color: #fff;
}
.bb{
display: none;
}
@media screen and (max-width:960px){
.bb{
display: block;
}
.aa{
display: none
}
.wrap{
width: 100%;
}
.title{
text-align: center;
}
.nav li{
width: 20%;
margin-right: 20px;
border-radius: 10px;
}
.left ,.right{
width: 100%;
}
.left{
margin-bottom: 20px;
}
.footer{
height: auto;
margin-top: 20px;
}
.footer span{
display: block;
background: #666699;
}
}
</style>
</head>
<body>
<div class="wrap">
<h1 class="title aa">往事随风</h1>
<h1 class="title bb">往事随风 三</h1>
<ul class="nav">
<li>亿房首页</li>
<li>
亿房信息</li>
<li>
在线咨询
</li>
<li>
亿房论坛</li>
</ul>
<div class="con">
<div class="left">
<h3>武汉亿房网</h3>
<p>前端对于网站来说,通常是指,网站的前台部分包括网站的表现层和结构层。因此前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,现在最新的高级版本HTML5、CSS3,以及SVG等。</p>
<p>html指的是超文本标记语言 (Hyper Text Markup Language),这个也是我们网页最常用普通的语言了,经历了多个版本的发展,已经发展到5.0版了,得力于W3C建立的标准和规范,已普遍升级到了XHTML,XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language), XHTML 于2000年的1月26日成为 W3C 标准,是更严格更纯净的 HTML 代码,XHTML 的目标是取代 HTML。XHTML 与 HTML 4.01 几乎是相同的,XHTML 是作为一种 XML 应用被重新定义的 HTML,是一个 W3C 标准。W3C 将 XHTML 定义为最新的HTML版本。所有新的浏览器都支持 XHTML</p>
<p>css级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力</p>
<p>javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能</p>
</div>
<div class="right">
<div class="rigth_con1"></div>
<div class="rigth_con1"></div>
<div class="rigth_con1">
<ul>
<li><img src="img/img/1.jpg" alt=""></li>
<li><img src="img/img/2.jpg" alt=""></li>
<li><img src="img/img/3.jpg" alt=""></li>
<li><img src="img/img/1.jpg" alt=""></li>
<li><img src="img/img/2.jpg" alt=""></li>
<li><img src="img/img/3.jpg" alt=""></li>
</ul>
</div>
<div class="rigth_con1"></div>
</div>
</div>
<div class="footer">
<span>关于站长之家</span>
<span>联系我们(电话)</span>
<span>广告服务</span>
<span>友情链接</span>
<span>网站地图</span>
<span>版权声明</span>
<span>人才招聘</span>
</div>
</div>
</body>
</html>
HTML5+CSS3常见布局方式的更多相关文章
- css常见布局方式
CSS常见布局方式 以下总结一下CSS中常见的布局方式.本人才疏学浅,如有错误,请留言指出. 如需转载,请注明出处:CSS常见布局方式 目录: 使用BFC隐藏属性 float + margin abs ...
- 好程序员分享DIV+CSS3和html5+CSS3有什么区别
DIV+CSS3和html5+CSS3有什么区别,不管是DIV+CSS3还是html5+CSS3,他们都是我们对网页开发布局方式的统称,但是DIV+CSS3作为网页的基础开发这句话其实并不严谨,因为而 ...
- CSS原生布局方式
前言 网页原生布局的方法其实网上有很多,大概为Flow(流动布局模型).Float(浮动布局模型).Layer(层级布局模型).<!--more--> Flow布局 流动布局模型其实就是默 ...
- html5/css3响应式布局介绍及设计流程
html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局 ...
- 第九十三节,html5+css3移动手机端流体布局,基础CSS,头部设计,轮播设计,底部设计
html5+css3移动手机端流体布局,基础CSS,头部设计,轮播设计,底部设计 基础CSS 首先将通用css属性写好 @charset "utf-8"; /*通用样式*/ /*去 ...
- 【HTML5&CSS3进阶学习02】Header的实现·CSS中的布局
前言 我们在手机上布局一般是这个样子的: 其中头部对整个mobile的设计至关重要,而且坑也很多: ① 一般来说整个header是以fixed布局,fixed这个产物在移动端来说本身坑就非常多 ② 在 ...
- Html5 布局方式
在Html5之前,统一采用的是Div+css的方式进行布局,但是却和开发人员的命名方式,喜好有关.在新的Html5中,布局却显得更加人性化,更易理解了.如增加了Header,Footer,Sectio ...
- HTML5+CSS3学习笔记(二) 页面布局:HTML5新元素及其特性
HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. 本次学习HTML5的新标签元素有: <head ...
- 第九十四节,html5+css3移动手机端流体布局,旅游部分,媒体查询
html5+css3移动手机端流体布局,旅游部分,媒体查询 媒体查询 媒体查询是手机网站和自适应网站的重要部分,媒体查询可以根据不同的屏幕大小,做响应的处理,如文字的大小,区块隐藏等等 媒体查询,这里 ...
随机推荐
- Excel 单元格的相对引用和绝对引用
引用方式 单元格的地址由该单元格所在的行号和列标构成,一个引用代表工作表上的一个或者一组单元格,指明公式中数据所在的位置. 编号 消费记录 价格 1 乒乓球 1 2 火腿肠 2 3 乒乓球 1 4 羽 ...
- IDEA:库源与类的字节码不匹配
在我配置pom.xml文件后,进行代码编辑,发现引入的方法并不是想要的内容,然后我就进入下载源码后进入到源码中发现我想要的方法和导入的jar包内的源码方法并不相同 ,于是到jar的存放地址中将其他版本 ...
- 一些有用的数学知识(Updating)
文章目录 拉格朗日插值公式 微分中值定理 费马引理 拉格朗日中值定理 柯西中值定理 洛必达法则 连分数(NOI2021 D2T2 考点) 定义 结论 定理1 定理2 定理3 定理4 定理5 欧拉公式 ...
- CF1019B The hat (二分)
题面 题解 如果位置为i的人与对面的差是x,i+1位置由于只能+1或-1,所以i+1位置与对面的差就是x.x+2或x-2,可以发现,奇偶性不变. 所以只要判断出是奇差,就可以直接输出"! - ...
- TMC2209步进驱动芯片基本配置及使用
TMC2209是用于两相步进电机的超静音电机驱动器IC. TMC2209与许多传统驱动器以及TMC2208引脚兼容. TRINAMICs先进的StealthChop2斩波器可确保电机无噪音运行,实现最 ...
- 【Prometheus+Grafana系列】监控MySQL服务
前言 前面的一篇文章已经介绍了 docker-compose 搭建 Prometheus + Grafana 服务.当时实现了监控服务器指标数据,是通过 node_exporter.Prometheu ...
- Qt Q_OBJECT编译问题
编译问题 添加Q_OBJECT后需要qmake 多重继承 添加了Q_ENUM之类的宏,就需要Q_OBJECT 添加了Q_OBJECT,就需要类继承自QObject 如果有多重继承关系,QObject一 ...
- Codeforces Round #604 (Div. 2) -D
Problem - D - Codeforces 题意 : 有 a 个0,b个1,c个2,d个3,构成一个序列,使得每两个数字之间的差值为1 题解: 就是以四种数字分别为起点,暴力模拟 #includ ...
- 给定字符串定义char *a = “I love China!”,读入整数n,输出在进行了a = a + n这个赋值操作以后字符指针a对应的字符串
include<stdio.h> include<string.h> int main() { const char *a="I love China!"; ...
- Linux或Docker里安装minio / Docker中安装h5ai
此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...