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日

相关文章

  • css3与html5实现响应式导航菜单(导航栏)效果分享

    谢谢你对这个话题的询问。下面我将为你详细讲解如何使用CSS3和HTML5实现响应式导航菜单效果,以下是攻略: 第一步:HTML 结构 首先,我们需要在 HTML 中编写导航栏的结构,具体的代码如下所示: <div class="nav"> <div class="logo"> <a hre…

    css 2023年6月10日
    00
  • 以前写的两个CSS树形菜单

    当初写两个CSS树形菜单的时候,主要考虑的是可扩展性、易用性和可读性,这里提供一份完整的建议和攻略,方便您学习和使用。 CSS树形菜单 HTML结构 首先,我们需要准备合适的HTML结构,来实现树形菜单。一般而言,在HTML结构中,我们需要使用ul(unordered list,无序列表)元素和li(list item,列表项)元素来搭建树形结构。 示例代码…

    css 2023年6月10日
    00
  • 无间断滚动的新闻文章列表,兼容IE、Firefox和Opera,符合W3C标准。可作Marquee

    要实现无间断滚动的新闻文章列表,需要用到HTML、CSS和JavaScript技术。下面是实现该功能的完整攻略: HTML结构 首先,为了实现滚动效果,需要先在HTML中创建一个容器元素,用来包裹所有新闻文章列表。例如: <div id="news-container"> <!– 新闻文章列表 –> <u…

    css 2023年6月10日
    00
  • jQuery实现天猫商品放大镜效果

    一、准备工作 引入jQuery库和相关CSS样式文件 在head标签中引入jQuery库jquery.min.js和放大镜样式文件zoom.css。 <head> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js">&…

    css 2023年6月11日
    00
  • js实现拾色器插件(ColorPicker)

    实现一个拾色器插件(ColorPicker)主要涉及以下几个部分:HTML结构、CSS样式和JavaScript脚本。 HTML结构 在HTML中,我们需要创建一个颜色选择器的容器元素,以及一些控制颜色选择器的元素。一般来说,颜色选择器的容器是一个div元素,选择器的控制元素有颜色预览区、色调选择器、饱和度选择器、红、绿、蓝(RGB)颜色选择器以及确定和取消…

    css 2023年6月10日
    00
  • JS实现DIV高度自适应窗口示例

    下面我将为你详细讲解“JS实现DIV高度自适应窗口示例”的完整攻略。 步骤一:设置DIV的CSS样式 首先,我们需要设置DIV的CSS样式,让它具备自适应窗口高度的能力,代码如下: div{ height: auto; /*设置DIV高度自适应窗口*/ min-height: 100%; /*设置DIV最小高度为100%*/ } 步骤二:使用JS动态计算DI…

    css 2023年6月10日
    00
  • CSS3使用transition属性实现过渡效果

    下面我来详细讲解“CSS3使用transition属性实现过渡效果”的完整攻略。 什么是transition属性? transition属性是CSS3中的新特性,可以用来实现在元素属性发生变化的时候,产生平滑渐变的过渡效果。通过指定需要过渡的属性、过渡时间、延迟时间和过渡方式等参数,可以实现各种酷炫效果。 如何使用transition属性? transiti…

    css 2023年6月10日
    00
  • Python PyQt5学习之样式设置详解

    Python PyQt5学习之样式设置详解 在使用 PyQt5 进行 UI 开发时,样式设置是一个很重要的部分。通过样式设置,我们可以控制组件的外观,让 UI 更加美观、个性化。本篇文章将详细介绍 PyQt5 中的样式设置,包括样式表、样式类、QStylePainter 等。 样式表 样式表是 PyQt5 中最常用、最方便的样式设置方式之一。在 PyQt5 …

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