问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

div+css或者table布局使页面宽度自适应的做法有哪些?

发布网友 发布时间:2022-04-06 10:44

我来回答

3个回答

懂视网 时间:2022-04-06 15:06

我们经常会看到这样的页面,左侧(或者右侧)为固定的导航或者菜单栏,另一侧将会随着浏览器的缩放而自适应改变其大小,这其实就是宽度自适应的实现。

css宽度自适应中最常见的实现方法有两种,一种是两列布局,另一种是三列布局

下面我们就来对这两种方法分别简单介绍一下。

一. css宽度自适应之两列布局:

我们以右侧宽度固定,左侧宽度自适应为例:

1、固定宽度区浮动,自适应区不设宽度而设置 margin

<div id="wrap">
 <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
 <div id="content" style="height:500px;background:#000;color:#fff;">自适应区</div>
</div>
#sidebar {
 float: right; width: 300px;
}#content {
 margin-right: 300px;
}

注意:

右侧一直固定不动,左侧根据屏幕的剩余大小自适应。

但实际上这个方法是有局限性的,那就是html结构中sidebar必须在content之前才行。

2、float与margin配合使用

<div id="wrap">
 <div id="content" style="height:500px;background:#000;color:#fff;">
 <div class="contentInner">
 自适应区 </div>
 </div>
 <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
</div>
#content {
 margin-left: -300px; float: left; width: 100%;
}#content .contentInner{
 margin-left:300px;
}#sidebar {
 float: right; width: 300px;
}

说明:这样实现,contentInner的实际宽度就是屏幕宽度-300px。

3、固定宽度区使用绝对定位,自适应区设置margin

<div id="wrap">
 <div id="content" style="height:500px;background:#000;color:#fff;">我现在的结构是在前面</div>
 <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
 </div>
#wrap{
 position:relative;
}#content {
 margin-right:300px;
}#sidebar {
 position:absolute;
 width:300px;
 right:0;
 top:0;
}

4、使用display:table实现

<div id="wrap">
 <div id="content" style="height:500px;background:#000;color:#fff;">我现在的结构是在前面</div>
 <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
</div>
#wrap{
 display:table;
 width:100%;
}#content {
 display:table-cell;
}#sidebar {
 width:300px;
 display:table-cell;
}

注意:这一种方法在IE7以及以下浏览器不兼容,因为IE7设置display为table不识别。

二. css宽度自适应之三列布局:

1、固定宽度三列布局

 <div class="div0">
 <div class="left">left</div>
 <div class="middle">middle</div>
 <div class="right">right</div>
 </div>
*{
 padding: 0;
 margin: 0;
}
.div0{
 width: 800px;
 height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
 margin: 50px auto;
 border: 2px solid #E51414;/*添加边框只为结果更直观*/
}
.left{
 width: 200px;
 height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
 background: #6E6C8A;
 float: left;/*设为左浮动*/
 text-align: center;
}
.middle{
 width: 430px;
 height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
 background: #806155;
 float: left;/*设为左浮动*/
 margin: 0 10px 0 10px;/*左右各加10px使得三列之间有间隙*/
 text-align: center;
}
.right{
 width: 150px;
 height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
 background: #8F9068;
 float: right;/*设为右浮动*/
 text-align: center;
}

2、左右固定宽度、中间自适应宽度的三列布局

 <!--<div class="div0">-->
 <div class="left">left</div>
 <div class="middle">middle</div>
 <div class="right">right</div>
<!--</div>-->
*{
 padding: 0; 
 margin: 0;}
 /*.div0{
 width: 800px;
 height: 500px;
 margin: 50px auto;
 position: relative;
 border: 2px solid #E51414;
}
可以不要这个父元素div0(即默认父元素为body),如果有,需将这个父元素设置为相对定位*/
.left{
 width: 200px; 
 height: 500px; 
 background: #6E6C8A; 
 position: absolute; 
 top: 0; l
 eft: 0;
 /*设为绝对定位并且与其父元素的top、left距离都为0*/
 text-align: center;
 }
.middle{
 height: 500px; 
 background: #806155; 
 margin: 0 160px 0 210px;
 /*左右各加10px使得三列之间有间隙*/
 text-align: center;
 }
 .right{
 width: 150px; 
 height: 500px; 
 background: #8F9068; 
 position: absolute; 
 top: 0; 
 right: 0;
 /*设为绝对定位并且与其父元素的top、right距离都为0*/
 text-align: center;
 }

说明:当左右两个div宽度固定,中间的div宽度未知时,使用浮动不能实现三列布局。使用绝对定位才能实现三列布局:需要将左边和右边的元素设置为绝对定位,将中间的元素margin值的左右分别设置为右边元素和左边元素的宽度。不需要父元素的包裹,即可实现三列布局,如果有父元素,需要将父元素设置为相对定位。(关于定位的内容可以参考css手册)

热心网友 时间:2022-04-06 12:14

你试试:在最外面用一个大表格,里面放自己要的小表格,大表格的宽度用百分比来设置!

热心网友 时间:2022-04-06 13:32

上面的这样不好吧 这样你假如里面在套表格 那就不好了 一般表格最好不要超过3层 选择div 很轻松可以解决你说的问题!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样才能聚财 花呗额度怎么提升最快? 还在为word排版而发愁?word的实验报告模板&amp;word数学建模模板免费领... 如何鉴定骨伤是新伤和陈旧伤 夕阳无限好只是近黄昏古诗 ...其他人都无问题,确定网络连接无问题,请问是什么原因? 描写花朵从花蕾到开放的句子 描写花蕾的优美句子 ...毒毛和鲜艳色斑,一般食虫鸟不敢捕食,这在生物学上属于…( )A.保护... 安徽名人出身地 美国丢iphone手机找回的可能性多大 苹果手机丢了找回的几率 苹果手机丢失没有打开查找iphone怎么定位找回 苹果手机丢了没登陆定位还有什么办法可以找回 我的苹果手机丢了,好像没有开启定位服务,有没有可能找回啊 手机丢了找回来的几率有多大 苹果手机丢了别人不安装手机卡上无线有没有可能找回来 花月婷藏红花丰胸精华多少钱一瓶 米酒可以泡藏红花吗 做醪糟时可以加藏红花吗 苹果7p更新最新版本会卡吗?会耗电吗? iPhone7p更新了新系统会卡吗 羊肉汤熬制时间? 羊肉炖多少时间 羊肉炖多久就好了 小羔羊腿该怎么烧??求详细步骤。 老式高压锅压小羊腿,需要多少时间? 羊肉汤锅炖多久 小羊腿怎么做好吃又简单 羊腿适合炖汤吗 求电视背景墙壁纸贴法步骤? 请问电视墙壁纸怎么贴?有相关视频吗? 电视背景墙想换一下,要能自己贴的那种? 玻璃电视墙能直接贴墙纸吗? 电视背景墙和沙发背景墙的如何贴墙纸和装饰! 电视背景墙表面有纹理需要自贴啥样的图案 如何给比熊犬驱虫,比熊狗狗吃什么驱虫药好 比熊狗狗怎么训练 狗狗(比熊)问题 小苏打加白糖会变成什么气体? 小苏打与白糖能一起吃吗 白糖和小苏打放一起吃有没有副作用 把小苏打和白糖混合在一起,作用真厉害,记得告诉家人哦 苏打水和白糖反应有气泡,还能喝吗? 小苏打和白糖放一起,作用真厉害,解决了许多家庭困扰的烦恼 当白砂糖和小苏打放到一起,好神奇,这什么原理 白糖加小苏打咋样熬制,要详细程序 小苏打和白糖能兑水喝吗? 白糖被溶化后加入苏打粉小苏打能不能成为一种食物? 白糖红糖小苏打真能做甜点吗?