CSS技巧 (2)

前言 

  最近,面试的时候都碰到一些关于利用CSS实现多列等高布局或者一侧宽度固定,另一侧宽度自适应的问题,下面稍微总结一下:

先看一道题目

巧妙的多列等高布局

规定下面的布局,实现多列等高布局,要求两列背景色等高。

1 <div class="container">
2     <div class="left">多列等高布局左<br/>多列等高布局左</div> 3 <div class="right">多列等高布局右</div>4 </div>

方法一:使用flex布局

<div class="container">
    <div class="left">多列等高布局左<br/>多列等高布局左</div>
<div class="right">多列等高布局右</div>
</div>
.container{
  display:flex;
}
.left,.right{
  flex:1;
}
.left{
  background:pink;
}
.right{
  background:green;
}

缺点: IE9及IE9以下版本不支持flex属性

优点:实现方便,还可以方便实现各种比例

方法二:给容器div使用单独的背景色(流体布局)

原理就是给每一列添加相对应用的容器,并进行相互嵌套,并在每个容器中设置背景色。这里需要提醒大家你有多少列就需要多少个容器,比如说我们说的三列,那么你就需要使用三个容器。如下所示:

1 <div id="container2">
2   <div id="container1">
3     <div id="col1">Column 1</div>
4     <div id="col2">Column 2;Column 2;Column 2;Column 2;Column 2</div>
5   </div>
6 </div>
 1 // 在这里有两列,故需要两个容器
 2 #container2 {
 3   float: left;
 4   width: 100%;
 5   background: orange;
 6   position: relative;
 7   overflow: hidden;
 8 }
 9
10 #container1 {
11   float: left;
12   width: 100%;
13   background: green;
14   position: relative;
15   right: 30%;/* 距离是第二列的宽度,加上2%的padding */
16 }
17
18 #col1 {
19   width: 66%;
20   float: left;
21   position: relative;
22   left: 32%;/* container1容器right:30%;加上内边距2%,故为32%;  */
23 }
24
25 #col2 {
26   width: 26%;
27   float: left;
28   position: relative;
29   left: 36%;/* 加上三个内边距,所以是 36%;*/
30 }

优点:兼容各种浏览器

缺点:嵌套太多div元素

两列等高布局,请戳 Demo ;三列等高布局 ,请戳Demo

方法三:使用内外边距相抵消,注意父元素设置 "overflow:hidden;"

<div id="container">
  <div id="left" class="column aside">
    <p>Sidebar</p>
  </div>
  <div id="content" class="column section">
    <p>Main content;content;content;content;content</p>
  </div>
  <div id="right" class="column aside">
    <p>Sidebar</p>
  </div>
</div>
 1 #container {
 2   margin: 0 auto;
 3   overflow: hidden;
 4   width: 960px;
 5 }
 6
 7 .column {
 8   background: #ccc;
 9   float: left;
10   width: 200px;
11   margin-right: 5px;
12   margin-bottom: -99999px;
13   padding-bottom: 99999px;
14 }
15
16 #content {
17   background: #eee;
18 }
19
20 #right {
21   float: right;
22   margin-right: 0;
23 }

优点:兼容所有浏览器

Demo

方法四:边框模仿等高列

<div id="containerOuter">
  <div id="container">
    <div id="content">;Main Content;Main Content;Main Content;Main Content;Main Content;Main Content;Main Content</div>
    <div id="left">Left Sidebar</div>
    <div id="right">Right Sidebar</div>
  </div>
</div>
#containerOuter {
  margin: 0 auto;
  width: 960px;
}

#container {
  background-color: #0ff;
  float: left;
  width: 520px;
  border-left: 220px solid #0f0;
  /* 边框大小等于左边栏宽度,颜色和左边栏背景色一致*/
  border-right: 220px solid #f00;
  /* 边框大小等于右边栏宽度,颜色和右边栏背景色一致*/
}

#left {
  float: left;
  width: 200px;
  margin-left: -220px;
  padding:10px;
  position: relative;
/*   测试 */
  border:1px solid;
}

#content {
  float: left;
  width: 500px;
  padding:10px;
  margin-right: -520px;
}

#right {
  float: right;
  width: 200px;
  padding:10px;
  margin-right: -220px;
  position: relative;
}

Demo

小结:实现的方式还有很多~今天暂时总结这些~~日后再继续添加

时间: 2024-08-09 02:20:53

CSS技巧 (2)的相关文章

你应该知道的25个非常有用的CSS技巧

在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼容性的问题, CSS网页布局,说难,其实很简单. 说它容易,往往有很多问题困扰着新手,在中介绍了非常多的技巧,这些小技巧与知识能事半功倍的给大家以帮助,经验丰富的CSS程序员通常都知道这一点,但初学者不要错过了! 这里有25个非常有用的CSS技巧,将帮助你解决让你棘手的CSS代码问题.你可以直接使用到你现在的项目当中 1.更改文本突出显示颜色(Change Text Highlight Color) 您可能不知道!使用

CSS技巧二

元素缩写 font中属性的放置顺序是严格遵守的,否则不会生效. Font:font-style font-weight font-size font-familiy;(注:font-size和font-family是font的必须属性,并且font-size一定要放在font-family的前面) Margin:margin-top margin-right margin-bottom margin-bottom ; Padding:padding-top padding-right paddi

CSS技巧-rgba函数的妙用

先简单介绍一下: rgba()函数是平时开发中经常遇到的,这篇文章也做了一个比较详细的解读以及一系列的应用. 对它的工作原理做一番分析:就是具有一定透明度的盒子: 还比较了rgba()函数和不透明度属性(opacity)的区别:使用 opacity,所有子元素都会受到影响: 在实际开发中,有些地方用rgba()函数也更加方便:为网站 header 定制主题.文章标题.按钮.渐变.子元素.调色盘中的深/浅效果.图像效果. 最后也指出使用rgba()需要注意的地方:比如兼容性.颜色对比检查等等. 原

多屏复杂动画CSS技巧三则(转载)

当下CSS3应用已经相当广泛,其中重要成员之一就是CSS3动画.并且,随着CSS动画的逐渐深入与普及,更复杂与细腻的动画场景也如雨后春笋般破土而出. 例如上个月做的「企业QQ-新年祝福」活动: 虽然视频内容是手机上的显示效果,但是,这个“企业新年祝福活动”原本只针对桌面端,移动端是后来辅助增强(增加了相当于活动页面UV 5.7%的点击).而目前大多数类似页面只针对移动端,例如其他同事实现的QQ空间5.0预约页第二版: 扫码(需登录)或者链接二选一: 访问demo戳这里 因此,需要多一点适配的技巧

css技巧一

隐藏元素 display:none,隐藏元素,并删除其所在的位置. visiblity:hidden 隐藏元素,还占用其位置. 边框问题 img放入a元素里,img会出现边框问题.通过reset img的border样式即可解决. 影藏部分内容 可以通过设置height高度和overflow来实现.也可以通过display;:none来实现. 置换元素和非置换元素 置换元素(replaced element)主要是指 img, input, textarea, select, object 等这

20个很有用的CSS技巧

导语:下面这几个CSS技巧你可能不知道,1.彩色照片变黑白,2.所有元素垂直居中,3.禁用鼠标,4.模糊文字,小编学完能量满满的,觉得对CSS又充满了爱,你也来看看. 1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%

CSS技巧收集——毛玻璃效果

CSS技巧收集--毛玻璃效果 原文地址    http://www.cnblogs.com/ghost-xyx/p/5677168.html 先上 demo和 源码 其实毛玻璃的模糊效果技术上比较简单,只是用到了 css 滤镜(filter)中的 blur 属性.但是要做一个好的毛玻璃效果,需要注意很多细节. 比如我们需要将上图中页面中间的文字区域变成毛玻璃效果,首先想到的是给其设置一个透明度,并添加模糊滤镜: .content { background-color: rgba(0,0,0,0.

H5特效动画中的CSS技巧

当下CSS3应用已经相当广泛,其中重要成员之一就是CSS3动画.并且,随着CSS动画的逐渐深入与普及,更复杂与细腻的动画场景也如雨后春笋般破土而出.例如上个月做的「企业QQ-新年祝福」活动: 感谢shirley帮忙录制上面的视频,虽然视频内容是手机上的显示效果,但是,这个"企业新年祝福活动"原本只针对桌面端,移动端是后来辅助增强(增加了相当于活动页面UV 5.7%的点击).而目前大多数类似页面只针对移动端,例如其他同事实现的QQ空间5.0预约页第二版: 扫码(需登录)或者链接二选一:

网页设计师必备的10个CSS技巧

CSS是网页设计师的基础,对CSS的了解能使他们能够设计出更加美观别致的网页.使用CSS技巧来巧妙地处理CSS是非常令设计师着迷的事情.在CSS的深海世界里有很多有意思的东西,你只需要找到最适合你的就好.当然我们不可能一下子就记住所有CSS的规则和语法,但为了以后的发展我们还是应该记住那些非常有用的CSS技巧.今天我们精心准备了10条对网页设计师最有用的CSS技巧,如果你想设计出独一无二脱颖而出的网页你必须得好好注意了.这篇博客是在与一家提供高质量印刷服务的在线印刷公司“ Business Ca

css技巧总结

一.自由布局的相关技巧 1.尽量不用指定像素宽度(width:300px) 用百分比或者auto(width:90%或者width:auto) 2.相对大小字体 {font-size:0.875em} small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875) 默认是16px 3.流动布局 float:left; clear:both的活用 4.选择加载CSS <link rel="stylesheet" type="text/css"