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

css怎么自适应宽度

发布网友 发布时间:2022-04-21 21:33

我来回答

9个回答

懂视网 时间:2022-04-28 16:03

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

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-28 13:11

css自适应宽度有2种方式:
1.是通过百分比来控制宽度;
2.可以通过块状元素自动占满父级的宽度的特性来实现
PS:当然还有一些方法,比如css3的flex-box布局,用flex布局的话,非常的方便可以实现多种自适应布局,但是,只适用于移动端,PC端上面只有高版本的浏览器才兼容,低版本的浏览器是不兼容的。

热心网友 时间:2022-04-28 14:29

css中,想自适应宽度,最简单的可以用width:100%,当然很多情况是不能达到要求的。
这就要用到响应式布局,响应式布局原理是利用media查询,根据屏幕的大小改变宽高以达到屏幕最佳适应效果。具体的请百度响应式布局来了解,这个不是一句两句话能讲清楚的。只有了解了响应式布局的原理才能实现自己的需求

热心网友 时间:2022-04-28 16:04

#dsadsa {
border: 1px solid #00CC66;
float:left;
overflow:hidden;
zoom:1;


这样就好了

热心网友 时间:2022-04-28 17:55

先把外层的盒子宽度设置好之后,再把需要自适应的宽度设置成100%,就可以了

热心网友 时间:2022-04-28 20:03

你的意思是高度宽度始终保持固定的比例吗?这个CSS做不到。

一般来说用jQuery解决。假设宽高比1:2;
var wid=$("div").width();
$("div").height(wid*2);

热心网友 时间:2022-04-28 22:28

对,代码就是这样的,用auto属性

热心网友 时间:2022-04-29 01:09

你是要自适应宽度大小呢,还是需要自适应屏幕高度?

热心网友 时间:2022-04-29 04:07

你量一下文字多宽 你就把 width设定成多少不就好了么 ? 前提你要给文字定义大小 宽度auto 文字变长 它也跟这变。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
莲花冬天发芽好吗 过冬荷花什么时候发芽 一个手机号怎样登陆两个孩子的长沙市中小学生人人通云平台 人人通怎么进入学校 人人通电脑版学生怎样登录 名侦探柯南真人版3为什么要换人? 真人版柯南,你最喜欢小栗旬还是沟端淳平? 央企中国稀土集团落户江西,衷心希望江西摆脱“环江西经济带”地位_百度... 来天津的央企有哪些 东丽区的央企有哪些 用邮箱发简历有什么要注意的吗 自定义CSS 是什么? 用邮箱发简祝福的话 用邮箱发送简历的方法 怎么用邮箱发送个人简历 电脑广告拦截软件哪个好 计算机如何防止弹出广告? 如何缓解眼部疲劳? 如何快速缓解视觉疲劳 哪些图片可以缓解眼睛疲劳 如何缓解眼睛疲劳,保护视力? 如何去除眼疲劳? 眼疲劳怎么治 有缓解视疲劳的图片吗 谁有可以帮助缓解眼睛疲劳的图片或者动画? 这种图片可以恢复视力么?缓解疲劳? 谁有一张绿色图片,护眼的,就是一堆绿框框一个比... 寻找对视力有好处,缓解眼睛疲劳的图片 长时间看电脑容易引起眼部疲劳,你有哪些缓解眼部... 找一些 可以调节 眼睛疲劳 的 图片,谢谢 CSS自定义模板 怎么在邮箱中发个人简历 css 自适应问题 CSS如何自定义文字位置? 怎么用邮箱发简历 CSS自适应 往邮箱里面发简历怎么发 css自定义类之间可以继承吗 怎么用邮箱发简历??? css样式自适应分辨率 发邮箱简历格式 邮箱发简历用什么格式 关于如何利用CSS自动调整图片的大小 用邮箱发简历邮件怎么写 如何在移动端实现纯css的自定义布局 个人简历怎么发送到邮箱 如何用CSS自定义鼠标显示的形状? 如何用CSS自定义鼠标显示的形状 css自适应三角形 css实现高度自适应? 如何添加CSS让页面自适应手机屏幕