您现在的位置是:网站首页> 编程资料编程资料
CSS中固定宽度布局的详细教程CSS中将Span标签设置为固定宽度的方法CSS三列布局两端固定宽度中间自适应CSS三栏布局探讨——中间固定宽度两边自适应宽度
2021-09-05
923人已围观
简介 这篇文章主要介绍了CSS中固定宽度布局的详细教程,包括元素内边距和边框等各种复杂的调试示例,极力推荐!需要的朋友可以参考下
.布局前的认知
1.1 三种基本方案
多栏布局有三种基本的实现方案:固定宽度、流动、弹性。
固定宽度。布局的大小不会随用户调整浏览器窗口大小而变化,一般是 900 到 1100 像素宽(最常见的是 960 像素)。
流动。布局的大小会随用户调整浏览器窗口大小而变化。(结合 CSS 媒体查询,能够适应最大和最小的屏幕,业界称之为 响应式设计。)
弹性。在浏览器窗口变宽时,不仅布局变宽,而且所有内容元素的大小也会变化。(实现太过复杂,不多介绍。)
1.2 布局高度
多数情况下,布局中结构化元素(乃至任何元素)的高度是 不必或者不应该设定的。因为保持元素 height 属性的默认值 auto 不变,才能使元素根据自己包含内容的增加而在垂直方向上扩展。这样扩展的元素会把下方的元素向下推,而布局也能随内容数量的增减而垂直伸缩。
1.3 布局宽度
为了使浏览器窗口宽度合理变化,布局能作出适当的调整,我们 需要精细地控制 布局宽度。
2.三栏-固定宽度布局
结构如下:
上代码:
- "en">
- "UTF-8">
-
三栏-固定宽度布局 - "wrapper">
- This is header.
- This is nav
- This is nav
- This is nav
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is aside.
- This is footer.
结果如图:
说明几点:
通过给整个外包装(#wrapper)设定宽度值(960px),并将其水平外边距设定为 auto,就能实现居中。随着向里面添加内容,相关的栏的高度会增加。
设置宽度并浮动中间三栏(nav、article 和 aside),让它们并排显示。使用属性:width 和 float。
三栏的总宽度加起来要等于外包装的宽度(150 + 600 + 210 = 960)。同样使用该方法就可以加任意多栏,只要它们的总宽度等于外包装的宽度即可。
页脚(footer)位于浮动元素后面,所以就会尽量往上移动。解决这个问题的方法就是使用 清除浮动(clear:both;或者使用clear:left;也可以,因为这里只有左浮动元素)。
3.为栏设定内边距和边框
在上面的布局中,只要一调整各栏中的内容,布局就可能超过容器宽度,而右边的栏就可能滑到左边的栏下方。例如为了让内容与栏边界空开距离,为栏添加水平外边距和内边距,或者为了增加爱栏间距,为栏添加外边距,导致布局宽度增大,进而浮动栏下滑;又或者在栏中添加大图片,或者没有空格的长字符串(如长URL),也会导致栏宽大超过布局宽度。
示例:
- article{
- background: #ffed53;
- width: 600px;
- float: left;
- padding: 10px 20px; /* 添加这一行CSS规则 */
- }
结果就会变成这样:
我们把这种现象称为 浮动滑移,可以使用三种方法来预防发生:
从设定的元素宽度中减去添加的水平外边距、边框和内边距的宽度和。
在容器内部的元素上添加内边距或外边距。
使用 CSS3 的 box-sizing 属性切换盒子缩放方式。应该该属性后,给元素添加边框和内边距都不会增大盒子,相反会导致内容变窄。
下面来讨论这三种方法:
3.1 重设宽度以抵消内边距和边框
由于上面给 article 栏添加了左右 20px 的水平边距,故将该栏宽度从 600px 减至 560px,故修改后的 article 栏 css 样式规则如下:
- article{
- background: #ffed53;
- width: 560px; /* 这里 */
- float: left;
- padding: 10px 20px; /* 别忘了这里 */
- }
效果如下:
虽然能实现,但每次只要调整内、外边距就要重设布局宽度,非常烦人,而且还可能导致页面错乱。
3.2 给容器内部的元素应用内边距和边框
把外边距和内边距应用到内容元素上确实有效,前提是这些元素没有明确地设定宽度,这样它们的内容才会随着内、外边距的增加而缩小。
根据盒模型定义,没有宽度的元素在水平方向上会适应其父元素,其内容会随着外边距、边框和内边距的增加而减少。
考虑到将来修改的时候,一栏中可能包含大量不同内容的元素,如果想重新调整内容与容器边界的距离,就必须每个元素都要进行调整,这样不仅麻烦,而且容易出错。况且,给栏添加边框同样会增大栏宽,不可能通过为其包含的内容元素逐个添加应用样式来做到。
所以说,与其为容器中的元素添加外边距,不如 在栏中再添加一个没有宽度的 div,让它包含所有内容元素,然后再给这个 div 应用边框和内边距。如此一来,只要为内部 div 设定一次样式,就可以把让所有内容元素与栏边界保持一致的距离。而且,将来再需要调整时也会很方便。任何新增内容元素的宽度都由这个内部 div 决定。
还是拿 article 栏来开刀:
- "inner">
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
- This is article.
相关内容
- 使用css实现圆角图形绘制CSS3制作圆角图片和椭圆形图片Css3圆角边框制作代码CSS的一些圆角图形实例分享CSS3绘制圆角矩形的简单示例纯CSS实现圆角折叠菜单的方法CSS实现反方向圆角的示例代码
- CSS编程中一些值得注意的地方小结CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 用SMACSS规范来编写CSS浅谈CSS编程的OOCSS和SMACSS设计模式
- 详解CSS的DRY编程方式CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- 浅谈CSS中的OOCSS编程方式浅谈CSS编程的OOCSS和SMACSS设计模式
- 利用SVG和CSS3来实现一个炫酷的边框动画纯CSS3实现的鼠标悬停文字线条边框动画特效源码CSS3基于SVG实现的多种鼠标滑过边框线条动画特效源码CSS3实现的鼠标滑过边框线条动画特效源码纯css3实现的鼠标滑过圆形边框动画特效源码jQuery+CSS3实现响应式鼠标悬停图片边框炫酷动画特效源码纯css3基于svg实现鼠标经过按钮边框线条动画特效源码6种非常炫酷的CSS3按钮边框动画特效CSS3实现6种炫酷的按钮边框动画特效源码CSS3实现的图片边框动画特效源码使用纯 CSS 创作一个渐变色动画边框
- 使用Sass来编写面向对象的CSS代码前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范详解CSS的Sass框架中代码注释的编写方法利用CSS的Sass预处理器(框架)来制作居中效果深入解析CSS的Sass框架中混合宏的使用CSS的Sass框架中常用的操作符的使用教程CSS框架sass的简单一览CSS的SASS样式编程指南CSS制作框架 Sass 3.4.4 今日发布 学习CSS预处理器:Sass和less进行对比sass简介_动力节点Java学院整理
- 举例详解CSS中的字体尺寸设置CSS中的字体大小设置属性总结关于CSS中字体设置的相关说明CSS 文本字体颜色设置方法(CSS color)CSS3中新增的对文本和字体的设置
- CSS中的元素定位方法详解浅谈CSS编程中的定位问题CSS实现定位元素居中的方法CSS实现模拟position的fixed页面定位效果
- CSS3的media query学习攻略设计适用于打印的CSS样式CSS控制漂亮的网页打印效果示例代码将XHTML CSS页面转换为打印机页面CSS实现强制浏览器分页将XHTML CSS页面转换为打印机页面详解CSS3中@media的实际使用详解CSS3中Media Queries的相关使用CSS media queries CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)彻底弄明白CSS3的Media Queries(跨平台设计)
点击排行
本栏推荐
