css教程:css自适应布局方法

在进行web前端项目开发(http://www.maiziedu.com/course/web-px/)时,通常情况下会对浏览器进行自适应布局,自适应布局分两类:高度和宽度,方法有很多,我用三列布局举例,我就列几个通俗易懂的例子呗,懂了三列的,两列的原理一样,呵呵哒。

效果图如下:高度自适应——宽度自适应

1,高度自适应布局

原理就是把每个模块设置为绝对定位,然后设置中间自适应的模块的top和bottom属性的值分别为头部模块和底部模块的高,然后中间模块的高度就自适应了。代码如下:

html代码:

<body>

<div class="top">

120px

</div>

<div class="main">

自适应

</div>

<div class="bottom">

120px

</div></body>

css代码:

.top{

width: 100%;

height: 120px;

position: absolute;

background-color: greenyellow;

}

.main{

position: absolute;

width: 100%;

top: 120px;

bottom: 120px;

background-color: azure;

height: auto;

}

.bottom{

position: absolute;

bottom: 0;//别漏了

width: 100%;

height: 120px;

background-color:greenyellow ;

}

2,宽度自适应,有三种方法,分别是用绝对定位;利用margin,中间模块先渲染;自身浮动。

a,用绝对定位来设置宽度自适应布局,原理:针对自适应模块使用绝对定位,在把left和right设置为左右两列的宽,其实原理和高度自适应一样,另外左右两列分别左右浮动。

html代码:

<body>

<div class="left">

200px

</div>

<div class="main">

自适应

</div>

<div class="right">

200px

</div></body>

css代码:

html,

body {

margin: 0;

height: 100%;

padding: 0;

font-size: 30px;

font-weight: 500;

text-align: center;

}

.left,

.right {

width: 200px;

display: inline;

height: 100%;

background-color: greenyellow;

}

.left {

float: left;

}

.right {

float: right;

}

.main {

position: absolute;

left: 200px;

right: 200px;

height: 100%;

background-color: azure;

display: inline;

}

b,中间一列优先渲染的自适应三列布局,优先渲染(加载)的关键:内容在html里面必须放在前面。自适应的div必须放在left和right前面且包含在一个父div里。父div,left和right模块都向左浮动,然后对自适应的div(就是父div里的子div)设置margin:0 200px,然后对left的margin-left的属性值设置为100%的负数,就是margin-left:-100%;对right的margin-left的属性值设置为自身宽度的负数,就是margin-left:-200px。

注意:自适应的div必须放在left和right前面且包含在一个父div里。

html代码:

<body>

<div class="main"> <!--看清楚,这里用一个父div包住-->

<div class="content">

自适应

</div>

</div>

<div class="left">

200px

</div>

<div class="right">

200px

</div></body>

css代码:

html,

body {

margin: 0;

height: 100%;

padding: 0;

font-size: 30px;

font-weight: 500;

text-align: center;

}

.main {

width: 100%;

height: 100%;

float: left;

}

.main .content {

margin: 0 200px;

background-color: azure;

height: 100%;

}

.left,

.right {

width: 200px;

height: 100%;

float: left;

background-color: greenyellow;

}

.left {

margin-left: -100%; //important}

.right {

margin-left: -200px; //important}

c,自身浮动,原理:中间列设置margin属性,就是把左右列分别左右浮动。注意:使用这个方法布局自适应的话,必须把自适应的那一列在html中放在left和right后面。

html代码:

<body>

<div class="left">

200px

</div>

<div class="right">

200px

</div>

<div class="main">

自适应

</div></body>

css代码:

html,

body {

margin: 0;

height: 100%;

padding: 0;

font-size: 30px;

font-weight: 500;

text-align: center;

}

.main {

margin: 0 200px;

height: 100%;

background-color: azure;

}

.left,

.right {

width: 200px;

height: 100%;

background-color: greenyellow;

}

.left {

float: left;

}

.right {

float: right;

}

时间: 2024-08-04 12:05:16

css教程:css自适应布局方法的相关文章

css 多栏自适应布局

在页面重构中,我们经常会需要实现多栏布局,例如n栏固定宽度 + m栏自适应宽度的组合,绝对布局+padding+百分比宽度是容易想到的比较暴力的解决方法,但是作为未来的"工程师",我们应该需求一些优雅点的方法.先说说两栏布局,上例子: <div class='container' > <div class='div1' >1</div> <div class='div2' >2</div> </div> 如图,假如

css 两列自适应布局的4种思路

前面的话 前面已经介绍过css 两列布局中单列定宽单列自适应布局的6种思路的两列布局,而两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式.本文将从float.table.flex和grid来介绍两列自适应布局的4种思路 float [思路一]float 在单列定宽单列自适应的两列布局中,经常用float和负margin配合实现布局效果.但由于margin取值只能是固定值,所以在两列都是自适应的布局中就不再适用.而float和overflow配合可实现两列自适应效果.使用overfl

我熟知的三种三栏网页宽度自适应布局方法

一.前言在如今各个分辨率显示器N足鼎立的时期,页面采用流动性布局(亦可称自适应布局)不失为一个好选择.当然,具体实现不是那么容易,需要一定的css功力和实践经验.本文不讲细节,只讲外部的自适应架构,这也是实现整个页面自适应的前提.目前为止,我所熟知的左中右三栏宽度自适应于浏览器的方法有三个:绝对定位法,margin负值法以及自身浮动法.这些方法简洁实用,且无兼容性问题.如果您想在您的页面上使用流动性布局,相信本文给您一些启示的. 二.三种方法为了演示的需要,首先限定下示例的布局结构:左中右三栏布

CSS两列自适应布局

两列布局,一边固定,一边自适应,很常见,可不见得都能写好,就像我. 在一通搜索后,总结了几种方法. 1.CSS3 Flex-Box 其实我最早知道的是这种方法,之前也记录过. 弹性方框模型 (Flexible Box Model)笔记 2.来自div+css自适应两列布局,一列定宽,一列自适应 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Doc

CSS 3栏自适应布局

绝对定位 css html,body{margin: 0px;height:100%;} div{height: 100%;} .left,.right {top: 0px;position: absolute;width: 200px;background-color: black;} .left {left: 0px;} .right {right: 0px;} .center {margin: 0px 200px;background-color: red;} html <div clas

圣杯 双飞翼布局 多栏自适应布局BFC

七种实现左侧固定,右侧自适应两栏布局的方法 圣杯布局 双飞翼布局 圣杯布局和双飞翼布局 CSS深入理解流体特性和BFC特性下多栏自适应布局 块状元素的流体特性. 图片宽度一直width:100%,结果随着margin, padding, border的出现,其可用宽度自动跟着减小,形成了自适应效果.就像放在容器中的水流一样,内容区域会随着margin, padding, border的出现自动填满剩余空间(box-sizing:border box;感觉) 然而,利用块状元素流体特性实现的自适应

抛砖引玉之宽度自适应布局

抛砖引玉之宽度自适应布局 什么是宽度自适应布局呢? 就是当浏览器窗口大小改变时,浏览器里的元素宽度也随之改变,从而达到自适应布局. 常见的宽度自适应布局有: 1.  两列:左边宽度不变,右边宽度自适应 2.  三列:左右两边宽度不变,中间部分自适应 3.  三列:左右两边宽度自适应,中间部分不变 一.利用div+css实现以上“自适应布局” (1)两列:左边宽度固定,右边宽度自适应 利用div+float+margin,已在随笔‘float剖析’中讲解,具体代码和效果图见下: <!DOCTYPE

全兼容的全屏自适应布局

1.原理 body, html高度等到全屏高度 使用position:absolute;的方式来定义最外层的div, 内层的div 可以通过height:100%来渲染高, 这样就可以说不用在js的帮助下来实现全立屏的自适应布局 关于兼容 ie6 采用让body的上内边距等到 top 层的高度, 下内边距等到 bottom 层的高度, 通过这样的效果达到中间层高度等height:100%的效果 内层 inner-box 的高度在 ie67 无法实现height:100%的效果, 因为如果在 ie

移动应用开发之自适应布局与单位(px、em)选择

移动应用开发中自适应布局是非常重要的,因为不同设备分辨率不一样,大小也不一样,不采用自适应布局在不同的设备中显示会出现各种问题 能够起到自适应布局的方法 CSS3中的自适应布局 百分比布局法:即大小,位置,边距等用百分比来限制,能够在不同的设备中占据总体的布局一致 webkit-box结合-webkit-box-flex布局法:使用webkit-box能够实现弹性盒子模式布局,结合-webkit-box-flex能够实现将屏幕完全分割的布局,与半分比不同的是:百分比布局在存在border的时候不