CSS布局(圣杯/双飞翼)

简介: CSS布局(圣杯/双飞翼)

布局特点:


内容区分为左中右三部分,其中左右两部分的宽度固定,中间部分的宽度随视口变化


优缺点


  • 圣杯布局用定位+位移,代码较复杂,但是dom结构清晰
  • 双飞翼布局,不使用定位,换来dom结构的不友好


圣杯:


  • 多个div标签
  • 中间宽度center设置为100%,外面的content设置padding,给两端留出位置,留的宽度刚好为左右固定的宽度;
  • center,left,right设置浮动,floor设置clear:both清除浮动;
  • left设置margin-left:-100%此时left位于center内的左端,;再设置定位position:relative;left:-100px
  • right设置margin-right:-100px
<body>
  <div class="top">top</div>
  <div class="content">
    <div class="center float">center</div>
    <div class="left float">left</div>
    <div class="right float">right</div>
  </div>
  <div class="floor">floor</div>
</body>
.body{margin:0;padding:0}
.float{float:left}
.top{background:#ff2}
.floor{background:#1121d1;clear:both}
.top,.floor{height:50px;width:100%}
.content{padding:0 100px}
.center{width:100%;background:rgb(129,55,55)}
.left{position:relative;background:rgb(1,55,55);width:100px;margin-left:calc(-100%);right:100px}
.right{background:rgb(1,155,155);width:100px;margin-right:-100px}

双飞翼


多个div标签;

container设置width:100%,center设置width100%;margin:0 100px;

container,left,right设置浮动,footer清除浮动

left设置margin-left:100%

right设置margin-left:-100px


<body>
  <div class="header">header</div>
  <div class="container float">
    <div class="center">center</div>
  </div>
  <div class="left float">left </div>
  <div class="right float">column</div>
  <div class="footer">footer</div>
</body>
.header{height:50px;background:#ff9;width:100%}
.footer{height:50px;background:rgb(24,24,1);clear:both;width:100%}
.left{width:100px;background:rgb(60,51,189);margin-left:-100%}
.right{width:100px;background:rgb(23,160,160);margin-left:-100px}
.footer{height:50px;background:rgb(24,24,1);clear:both;width:100%}
.float{float:left;height:50px}
.container{width:100%}
.center{height:100%;margin-left:100px;margin-right:100px;background-color:pink}

flex实现


  • flex-grow 用于设置项目的放大系数。
  • flex-shrink 用于设置项目的缩小系数。
  • flex-basis 用于设置项目在主轴上的空间。
  • flex: flex-grow flex-shrink flex-basis | auto | none。
  • auto 表示:1 1 auto,即等比例扩大或者压缩。

     none 表示:0 0 auto,即不扩大,也不压缩。

     order: 为整数,可以为负数,order 默认值为 0,



     用于是设置项目的排序顺序,从小到大排列

  • content设置display:flex
  • center设置flex:1
  • left设置flex: 0 0 100px,order:-1
  • right设置 flex: 0 0 100px
   <div class="content">
    <div class="center">center</div>
    <div class="left column">left100 </div>
    <div class="right column">column150</div>
  </div>
   .content {
    display: flex;
  }
  .center {
    flex: 1;
    background: #ddd;
  }
  .left {
    flex: 0 0 100px;
    order: -1;
    background: #dd0;
  }
  .right {
    flex: 0 0 100px;
    background: #1d0;
  }
目录
相关文章
|
18天前
|
前端开发 开发者 UED
解锁网页布局的秘密武器:探索 CSS Grid 布局的神奇魔力
解锁网页布局的秘密武器:探索 CSS Grid 布局的神奇魔力
21 3
|
17天前
|
UED 开发者 容器
【专栏】Flexbox是CSS3的全新布局模式,提供灵活响应式的页面设计
【4月更文挑战第27天】Flexbox是CSS3的全新布局模式,提供灵活响应式的页面设计。其特点包括灵活性、响应式和易理解,通过主轴和交叉轴控制元素排列对齐。核心概念有容器和项目,常用于导航栏、卡片布局、响应式设计、表格和表单布局。关键属性如flex-direction定义主轴方向,justify-content和align-items控制对齐,flex属性调整项目伸缩,order改变排序。在实践中,要关注响应式、代码维护和浏览器兼容性,以优化布局和用户体验。
|
13天前
|
前端开发 UED
【专栏:HTML与CSS实战项目篇】创建一个具有复杂布局的电商详情页
【4月更文挑战第30天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先规划顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。在样式设计上,注重色彩搭配、字体选择、布局与间距及图片处理。交互效果包括图片放大、添加到购物车按钮、滚动监听和评论互动,以提升用户体验。实际开发中需考虑跨设备兼容性和用户体验优化。
|
13天前
|
编解码 缓存 前端开发
【专栏:HTML与CSS移动端开发篇】移动端网页布局与适配
【4月更文挑战第30天】本文探讨了如何使用HTML和CSS优化移动端网页布局与适配,强调响应式设计、灵活布局和媒体查询的重要性。针对移动设备的屏幕尺寸、操作方式、网络速度和性能差异,提出了断点选择、触摸优化、图像和性能优化等最佳实践。测试和调试、框架工具的应用也是关键步骤,以确保在多设备上提供优秀用户体验。开发者需持续学习新趋势和工具,以适应移动端发展。
|
13天前
|
前端开发 UED 容器
【专栏:CSS进阶篇】CSS Grid布局:构建复杂的二维布局
【4月更文挑战第30天】CSS Grid布局是二维布局系统,适用于复杂页面结构,如页眉、主体和侧边栏。通过定义网格线和单元格,能轻松创建行和列。基本语法包括设置容器为grid容器,定义`grid-template-rows`和`grid-template-columns`。高级特性包括命名网格线、网格区域、网格间隙、重复网格线和自动填充。在实际应用中,CSS Grid能有效提升开发效率和用户体验,尤其在响应式设计和复杂布局场景下。
|
13天前
|
前端开发 开发者 容器
【专栏:CSS进阶篇】CSS Flexbox布局:实现灵活的响应式设计
【4月更文挑战第30天】CSS Flexbox是现代网页设计中创建响应式布局的关键工具,它提供了一种一维布局模型,使元素能灵活适应各种屏幕尺寸。通过设置容器的`display`属性为`flex`,开发者可以利用主轴和交叉轴调整元素排列和对齐方式。核心概念包括弹性项、伸缩性、空间分配和对齐。通过实例,如导航栏、卡片布局、图片画廊和响应式表单,展示了Flexbox在实现响应式设计中的应用。尽管需要注意浏览器兼容性,但掌握Flexbox能帮助开发者构建出功能强大且适应性强的界面。
|
13天前
|
前端开发 开发者 容器
【专栏:CSS基础篇】CSS定位与布局:从静态到浮动、定位
【4月更文挑战第30天】本文介绍了CSS定位与布局的基础,包括静态、相对、绝对、固定定位以及浮动。静态定位遵循HTML顺序,相对定位可在正常位置基础上偏移,不占用额外空间。绝对定位基于最近已定位祖先元素定位,脱离文档流。固定定位相对于浏览器窗口定位,无视页面滚动。浮动用于文字环绕图片等,可能导致父元素高度塌陷。Flexbox布局提供更灵活的元素排列和对齐方式,适配各种复杂布局需求。理解并掌握这些布局技术能提升网页设计的灵活性和响应性。
|
13天前
|
前端开发
【专栏:CSS基础篇】CSS盒模型:理解网页布局的核心
【4月更文挑战第30天】CSS盒模型是网页布局关键,将HTML元素视为内容、内边距、边框和外边距的矩形。内容决定元素大小,padding增加内部空间,border设置线条样式,margin控制元素间距。理解盒模型及其计算方式(内容+padding+border+margin)有助于布局设计。通过调整相关属性,实现浮动、Flexbox或定位布局,创建响应式网页。
|
15天前
|
前端开发
CSS弹性布局justify-content的用法
CSS弹性布局justify-content的用法
|
19天前
|
容器
css_flex布局
css_flex布局
18 0