CSS 实现 10 种现代布局的代码

CSS 实现现代布局有很多种方式,但是通常我们可以通过浮动、定位、Flexbox 和 CSS Grid 等技术来实现。下面是一份完整的攻略,让你了解如何实现 10 种常见的现代布局,并包含了两个示例说明。

1. 上下左右布局

这种布局方式也被称为定位布局,需要使用到 position 属性来设置元素的位置。通常,我们可以将容器设置为 position: relative;,然后将内部的子元素设置为 position: absolute; 并且设置 toprightbottomleft 属性来控制元素的位置。

<div class="container">
  <div class="box"></div>
</div>
.container {
  position: relative;
}

.box {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

2. 左右布局

这种布局方式最常见的实现方式是通过浮动来实现。我们可以将左侧的子元素设置为 float: left;,右侧的子元素设置为 float: right; 即可。

<div class="container">
  <div class="left"></div>
  <div class="right"></div>
</div>
.left {
  float: left;
}

.right {
  float: right;
}

示例说明:

一个简单的左右布局可以用来展示内容和侧栏。比如一个博客网站可以使用这种布局,将文章放在左侧,将相关文章链接放在右侧。

<div class="container">
  <div class="content">
    <h1>文章标题</h1>
    <p>文章内容</p>
  </div>
  <div class="sidebar">
    <h2>相关文章</h2>
    <ul>
      <li><a href="#">文章1</a></li>
      <li><a href="#">文章2</a></li>
      <li><a href="#">文章3</a></li>
    </ul>
  </div>
</div>
.content {
  float: left;
  width: 70%;
}

.sidebar {
  float: right;
  width: 30%;
}

3. 两栏布局

这种布局方式通常使用 Flexbox 技术来实现。我们需要将容器设置为 display: flex;,然后将左侧的子元素设置为 flex: 1;(或者设置一个固定宽度),右侧的子元素设置为 flex: 2;(或者设置一个固定宽度)。

<div class="container">
  <div class="left"></div>
  <div class="right"></div>
</div>
.container {
  display: flex;
}

.left {
  flex: 1;
}

.right {
  flex: 2;
}

4. 三栏布局

这种布局方式也适合使用 Flexbox 技术来实现。我们需要将容器设置为 display: flex;,然后将左侧的子元素设置为 flex: 1;,中间的子元素设置为 flex: 2;,右侧的子元素设置为 flex: 1;

<div class="container">
  <div class="left"></div>
  <div class="middle"></div>
  <div class="right"></div>
</div>
.container {
  display: flex;
}

.left {
  flex: 1;
}

.middle {
  flex: 2;
}

.right {
  flex: 1;
}

5. 等高布局

这种布局方式可以使用 Flexbox 或者 Grid 技术来实现。我们需要让容器中的所有子元素高度相等,可以通过设置 height 或者 flex: 1; 来实现。

<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
.container {
  display: flex;
}

.item {
  flex: 1;
}

6. 栅格布局

这种布局方式同样可以使用 Flexbox 或者 Grid 技术来实现。我们需要将容器分割为一定数量的行和列,然后将每个子元素放在指定的位置上。

<div class="container">
  <div class="item item1"></div>
  <div class="item item2"></div>
  <div class="item item3"></div>
  <div class="item item4"></div>
  <div class="item item5"></div>
  <div class="item item6"></div>
</div>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.item1 {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

.item2 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.item3 {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}

.item4 {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}

.item5 {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
}

.item6 {
  grid-column: 3 / 4;
  grid-row: 3 / 4;
}

7. 非对称布局

这种布局方式可以使用 Flexbox 或者 Grid 技术来实现。我们需要将容器中的子元素放置在不同的位置上,并且使用 align-selfjustify-self 来进行微调。

<div class="container">
  <div class="item item1"></div>
  <div class="item item2"></div>
  <div class="item item3"></div>
  <div class="item item4"></div>
  <div class="item item5"></div>
</div>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
}

.item1 {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.item2 {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  align-self: end;
}

.item3 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  justify-self: end;
}

.item4 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.item5 {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
  align-self: start;
}

示例说明:

非对称布局可以用来展示不同大小的图片和文字。比如一个图片库网站可以使用这种布局,让大图和描述文字分别在不同的位置上,以达到更好的视觉效果。

<div class="container">
  <div class="item item1"><img src="large-image.jpg"></div>
  <div class="item item2">描述文字</div>
  <div class="item item3"><img src="small-image1.jpg"></div>
  <div class="item item4"><img src="small-image2.jpg"></div>
  <div class="item item5"><img src="small-image3.jpg"></div>
</div>
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
}

.item1 {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.item2 {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  align-self: end;
}

.item3 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
  justify-self: end;
}

.item4 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.item5 {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
  align-self: start;
}

8. 圣杯布局

这种布局方式通常用来展示网页的头部、底部和主内容区域。我们可以使用 Float 技术来实现。通常,我们可以将主内容 div 先放在 HTML 中,然后使用 float: left; 将其向左浮动,然后设置三个定位的子元素,一个放在左边、一个放在右边、一个放在主内容区域下方,大小和位置根据具体情况设置。

<div class="container">
  <div class="main-content">这里是主内容</div>
  <div class="left-sidebar">这里是左侧边栏</div>
  <div class="right-sidebar">这里是右侧边栏</div>
  <div class="header">这里是头部</div>
  <div class="footer">这里是底部</div>
</div>
.container {
  padding-left: 200px;
  padding-right: 200px;
}

.main-content {
  float: left;
  width: 100%;
}

.left-sidebar {
  float: left;
  width: 200px;
  margin-left: -100%;
  position: relative;
  left: -200px;
}

.right-sidebar {
  float: right;
  width: 200px;
  margin-right: -100%;
  position: relative;
  right: -200px;
}

.header, .footer {
  clear: both;
}

9. 双飞翼布局

这种布局方式也可以用来展示网页的头部、底部和主内容区域,与圣杯布局相似。但是双飞翼布局相比于圣杯布局,使用了更少的 HTML 标记。通常,我们可以将主内容 div 放在 HTML 中,使用 float: left; 浮动它,并且使用负边距将它移出容器的左右边距。然后,我们在主内容区域内部使用一个额外的 div 来包裹着放置左边栏 div 和右边栏 div,再对这个额外的 div 应用 margin-leftmargin-right 来设置左右边栏的宽度、位置。

<div class="container">
  <div class="main-content">
    <div class="inner-content">这里是主内容</div>
  </div>
  <div class="left-sidebar">这里是左侧边栏</div>
  <div class="right-sidebar">这里是右侧边栏</div>
</div>
.container {
  padding-left: 200px;
  padding-right: 200px;
}

.main-content {
  float: left;
  width: 100%;
}

.inner-content {
  margin-left: 200px;
  margin-right: 200px;
}

.left-sidebar {
  float: left;
  width: 200px;
  margin-left: -100%;
}

.right-sidebar {
  float: right;
  width: 200px;
  margin-right: -100%;
}

10. Sticky Footer 布局

这种布局方式可以用来实现一个 "粘性" 底部布局,即当页面内容较少时,底部区域始终固定在视图底端。我们可以通过使用 Flexbox 或者 Grid 技术来实现。主要思路是将页面设置为至少充满整个视图,然后将底部区域固定在底部。

<body>
  <div class="container">
    <div class="content"></div>
  </div>
  <div class="footer"></div>
</body>
html, body {
  min-height: 100%;
}

body {
  display: flex;
  flex-direction: column;
}

.container {
  flex: 1;
}

.footer {
  flex-shrink: 0;
}

示例说明:

Sticky Footer 布局可以用来实现网页的底部区域(比如版权信息或者联系方式)固定在底部,不管页面内容多少。比如一个企业官网可以使用这种布局,让联系方式一直在底端,方便用户获取相关信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS 实现 10 种现代布局的代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • C# MVC 微信支付教程系列之公众号支付代码

    下面是对“C# MVC 微信支付教程系列之公众号支付代码”的完整攻略,包括安装微信支付SDK、生成订单、调用微信支付API等步骤。 安装微信支付SDK 在进行微信支付开发之前,需要下载并安装微信支付SDK,推荐使用官方提供的.NET版SDK。在官方网站(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chap…

    css 2023年6月10日
    00
  • background-size使用详解

    Background-size使用详解 简介 CSS样式中的background-size属性用于指定一个背景图片的尺寸大小。该属性可接受一个或两个数值作为参数,其中第一个参数为图片宽度值,第二个参数为图片高度值。也可以使用关键字来代替尺寸数值,常用的关键字有:cover和contain。cover会将背景图像缩放到最大尺寸以填充整个容器,而contain则…

    css 2023年6月9日
    00
  • JQuery组件基于Bootstrap的DropDownList(完整版)

    首先,我们需要明确一下什么是jQuery组件,以及Bootstrap的DropDownList组件是什么。 jQuery组件是使用jQuery库进行开发的插件,可以通过引入相应的CSS和JS文件,将其集成到网页中。而Bootstrap是一套前端开发框架,提供了一系列的UI组件,这些组件可以对网站样式进行美化和规范化,同时具有良好的响应式布局。 DropDow…

    css 2023年6月11日
    00
  • 使用CSS的border属性绘制各种几何形状的方法

    使用CSS的border属性绘制各种几何形状的方法可以通过设置不同的border属性值来实现,例如border-width用于设置边框的宽度,border-style用于设置边框的样式,border-color用于设置边框的颜色等等。 下面为您详细讲解使用CSS的border属性绘制各种几何形状的方法: 1. 矩形 矩形是最常见的几何形状之一,可以使用CSS…

    css 2023年6月10日
    00
  • 强制显示、隐藏(IE\Mozilla)浏览器的滚动条实现代码

    强制显示或隐藏浏览器滚动条是网页制作中经常使用的技巧之一。下面我们就来详细讲解如何实现该功能。 方法一:使用CSS样式来控制滚动条 使用CSS样式可以对滚动条进行样式定制,并且可以通过设置overflow属性来控制是否显示滚动条。 隐藏滚动条 要隐藏滚动条,可以将body、html标签的overflow属性设置为hidden: body, html { ov…

    css 2023年6月10日
    00
  • 巧用CSS3 border实现图片遮罩效果代码

    对于“巧用CSS3 border实现图片遮罩效果代码”的完整攻略,我将提供以下几个部分的内容进行讲解: 原理介绍 实现步骤 示例说明 1. 原理介绍 图片遮罩效果的实现原理是利用CSS3的border属性,结合border-radius属性,设置四个边框,实现一个四角圆角边框,然后让图片放在这个边框内,遮住四个角。 2. 实现步骤 具体实现步骤如下: 创建一…

    css 2023年6月10日
    00
  • Bootstrap每天必学之缩略图与警示窗

    下面我来为您详细讲解“Bootstrap每天必学之缩略图与警示窗”的完整攻略。 一、缩略图 1. 基本概念 Bootstrap提供了一种快速、简单的缩略图生成方式。可以通过将<a>标签或<img>标签包含在一个<div>标签中,再在该<div>标签上应用.thumbnail类实现。 2. 示例说明 下面是一个简…

    css 2023年6月11日
    00
  • JS图片懒加载库VueLazyLoad详解

    JS图片懒加载库VueLazyLoad详解 什么是图片懒加载 图片懒加载是一种技术手段,用于减少页面加载时的请求次数。它将一些图片的资源延迟加载,直到用户需要访问它们的时候才进行加载,从而提高页面的加载速度。 VueLazyLoad介绍 VueLazyLoad是一个基于Vue.js的图片懒加载库。它能够处理负责的图片加载,让网页的加载速度更快,用户体验更好。…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部