常用布局-列宽度是固定宽度还是自适应

如何去理解一个页面需要仔细分析,页面结构形式再怎么变化,最终都还是基于两列布局结构的演变.

不同布局之间最大的区别是:列宽度是固定宽度还是自适应

    

布局思路:主要利用浮动和定位方式,借助负边距

宽度值与浮动的关系

盒模型宽度默认auto,宽度撑满浏览器窗口宽度或其父级宽度,拥有padding和margin值及宽度默认值auto时盒模型的宽度大小始终保持在浏览器窗口或父级所显示的范围内。

盒模型宽度默认auto加上float时,盒模型的宽度由内容撑开。只能添加具体的width值保证盒模型宽度。

两列布局:

//结构代码
<div id="header"></div>
<div id="contanier">
    <div class="mianBox"></div>
    <div class="sideBox"></div>
</div>
<div id="footer"></div>

header


contanier


mainBox


sideBox


footer

 
左右固定 width/height(px) width(px)
clearFloat(清浮动)
width(px)
float(left)
width(px)
float(right)
width/height(px)  
左右自适应 height(px) clearFloat(清浮动) width(%)
float(left)
width(%)
float(right)
height(px)
clearBoth(兼容IE)
 
             
左自适应右固定
(绝对定位方式)
height(px) position: relative
clearFloat(清浮动)
zoom: 1 (IE绝对定位消失)
float(left)
margin-right: 200px;
display:inline;(IE双边距bug)

position: absolute;
top: 0;  right: 0;   width: 200px;

height(px) 固定区域高于自适应区域时会产生bug,需要借助js判断父级高度
左自适应右固定
(float借助负margin)
height(px) clearFloat(清浮动)
zoom: 1 (IE绝对定位消失)
float(left)
margin-right: 200px;
display:inline;(IE双边距bug)

float: left;
width: 200px;
margin-left: -200px;

height(px)  

三列布局1:许多三列布局本质上还是两列布局,只是在主要内容区mainBox内继续分为两列左右浮动。

<div class="header">头部信息</div>
<div class="container">
     <div class="wrap">
         <div class="mainBox">主要内容区域</div>
         <div class="subMainBox">次要内容区域</div>
     </div>
     <div class="sideBox">侧边栏</div>
</div>
<div class="footer">底部信息</div>

三列布局2:为三个独立的列进行布局;

<div class="header">头部信息</div>
<div class="container">
     <div class="mainBox">
         <div class="content">主要内容区域</div>
     </div>
     <div class="subMainBox">次要内容区域</div>
     <div class="sideBox">侧边栏</div>
</div>
<div class="footer">底部信息</div>

header


contanier


mainBox


content


sideMainBox


sideBox


footer

 
两列定宽
中间自适应
height(px)   width(100%)
float(left)
margin:0 210px 0 310px
float: left;
width: 300px;
margin-left: -100%;


float: left;
width: 200px;
margin-left: -200px;

height(px)
clearBoth
 
左侧定宽
中间右侧自适应
height(px)   width(100%)
float(left)
margin:0 41% 0 310px
float: left;
width: 300px;
margin-left: -100%;


float: left;
width: 40;
margin-left: 40%;

   
三列自适应 height(px)   width(100%)
float(left)
margin:0 41% 0 21%
float: left;
width: 20%px;
margin-left: -100%;


float: left;
width: 40;
margin-left: 40%;

   

两列或三列等高布局

上面的布局情况都可以进一步做为两列或三列等高布局:可以利用背景图片,负边距或边框模拟等都可以实现,不过都会存在一定bug,

CSS主要作用为修饰页面,而判断是否等高是一种行为,应该使用js脚本,直接判断两列的高度,取得较大者,都赋值为较大者高度值。

时间: 2024-11-06 14:38:48

常用布局-列宽度是固定宽度还是自适应的相关文章

特殊的三列布局-左右两列宽度固定,中间自适应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼

今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞翼之外,循序渐进地介绍一下我们可以如何实现一个三列布局. 1. 首先,使用浮动布局来实现一下 See the Pen float-three-columns by xal821792703 (@honoka) on CodePen. 左侧元素与右侧元素优先渲染,分别向左和向右浮动 中间元素在文档流的

两列布局,左边div固定宽度,右边宽度自适应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Cont

CSS 右侧固定宽度 左侧自适应 或者 三列布局 左右固定 中间自适应的问题

一: 右侧固定宽度 左侧自适应  第一种方法:左侧用margin-right,右侧float:right  就可以实现.     HTML代码可以如下写:    <div>        <a href="" target="_blank">我是龙恩</a>    </div> <div>        <a href="" target="_blank">

两列布局,一列定宽,一列宽度自适应

方法一: body{ margin: 0;}.container{ height: 300px; overflow: hidden;}.left{ width: 200px; height: 300px; background: red; position: absolute; left:0; top: 0;}.right{ margin-left:200px; width: 100%; height: 300px; background: green;} <div class="cont

CSS布局 两列布局之单列定宽,单列自适应布局思路

前言 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.比如斗鱼的直播间,后台管理系统都是常用的 我们将从 float, inline-block, table, absolute, flex, grid 这几个布局方式来实现这种效果 float [float + margin] 将定宽的一列使用float,而自适应的一列使用计算后的margin <style> .f1 .parent{overflow: hidden;zoom: 1;} // 触发bfc和haslayout来闭合

布局:左宽度固定,右边自适应

需求: 左侧固定宽,右侧自适应屏幕宽: 左右两列,等高布局: 左右两列要求有最小高度,例如:200px;(当内容超出200时,会自动以等高的方式增高) 方法1:浮动布局 这种方法我采用的是左边浮动,右边加上一个margin-left值,让他实现左边固定,右边自适应的布局效果 这种实现方法最关键之处就是自适应宽度一栏"div#content"的"margin-left"值要等于固定宽度一栏的宽度值 <!DOCTYPE html> <html lang

三列自适应布局(左右定宽 中间自适应)

左右定中间自适应三列布局 1.绝对定位 2.浮动 3.flex 1 1.绝对定位 2 <!doctype html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>三栏布局</title> 6 <style type="text/css"> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 12 #main { 13 m

两列布局中单列定宽单列自适应布局的5种思路

× 目录 [1]float [2]inline-block [3]table[4]absolute[5]flex 前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute和flex这五种思路来详细说明如何巧妙地实现布局 思路一: float 说起两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动.如果各浮动元素的高度不同时,可能会出犬牙交错