Table of Contents
最近学到了几种关于左右固定宽度,中间自适应的三列布局的方法,整理了一下,在这里跟大家一起分享分享,其中有什么不足的还望各位给指导指导哈。
首先我想到的是float——浮动布局
其次我想到了position——定位
第三、使用双飞翼布局
最后我还想说说CSS3的flex布局方法
Home Web Front-end HTML Tutorial CSS三列布局之左右宽度固定,中间元素自适应问题_html/css_WEB-ITnose

CSS三列布局之左右宽度固定,中间元素自适应问题_html/css_WEB-ITnose

Jun 24, 2016 am 11:22 AM

最近学到了几种关于左右固定宽度,中间自适应的三列布局的方法,整理了一下,在这里跟大家一起分享分享,其中有什么不足的还望各位给指导指导哈。

首先我想到的是float——浮动布局

使用浮动,先渲染左右两个元素,分别让他们左右浮动,然后再渲染中间元素,设置它的margin左右边距分别为左右两个元素的宽度。例如以下代码就可以实现我们想要的三列效果啦。

1

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <div style="width:300px; float:left; background:#6FF">左侧的内容 固定宽度</div>    <div style="width:200px; float:right; background-color:#960">右侧的内容 固定宽度</div>    <div style="margin-left:300px;margin-right:200px; background-color:#9F3;">中间内容,自适应宽度</div></body></html>

Copy after login

其次我想到了position——定位

使用定位方式,不需要先渲染中间元素,只要把左右两个元素分别使用定位,left:0;right:0;中间元素设置margin左右边距为左右两个元素的宽度即可。

1

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style>.left{     width:200px;     height:500px;     position: absolute;     top:0;     left:0;     background:blue;}.center{    margin-left: 200px;    margin-right: 300px;    height:500px;    background-color: green;}.right{width:300px;height:500px;position: absolute;;top:0;right:0;background: blue;}    </style></head><body>    <div class="left">左边</div>    <div class="center">中间</div>    <div class="right">右边</div></body></html>

Copy after login

第三、使用双飞翼布局

使用双飞翼布局与其他方式不同,它最先渲染的是中间元素,然后才渲染两边元素(注意,这一点与float布局方式正好相反哟),先将三个元素都设置为向左浮动,然后使用负边距将左右两个元素覆盖到中间元素的左右两边,形成羽翼。

1

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style>.middle{    float: left;    width: 100%;    height: 50px;    background-color: #fff9ca;}.middle-wrap{    margin: 0 200px 0 150px;}.left{    float: left;    width: 150px;    height: 50px;    background-color: red;    margin-left: -100%;       /*负边距的作用就是让左边div盖在中间div上面*/}.right{    float: left;    width: 200px;    height: 50px;    background-color: yellow;    margin-left: -200px;    /*让右边的div覆盖在中间的div右边*/}    </style></head><body>    <div class="middle">        <div class="middle-wrap">middle</div>    </div>    <div class="left">left</div>    <div class="right">right</div></body></html>

Copy after login

双飞翼布局的最大优点是它的兼容性——可以兼容到IE6.

最后我还想说说CSS3的flex布局方法

该方式的思想是设置一个弹性容器包裹三个元素,并将这个容器设置为水平排列(flex-flow:row),左右两边元素设置固定宽度,中间元素设置为flex:1;

1

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style>.flex {    display: flex;    flex-flow: row;}.left{    width: 200px;    height: 50px;        background-color: red;}.center{    flex: 1;     height: 50px;    background-color: #fff9ca;}.right {    width: 300px;    height: 50px;    background-color: yellow;}    </style></head><body><div class="flex">    <div class="left">左边</div>    <div class="center">中间</div>    <div class="right">右边</div></div></body></html>

Copy after login

但不得不说的是flex布局的兼容性还不够完善,所以个人不推荐使用这种方式布局。

嘿嘿,以上就是我能想到的实现左右固定,中间自适应的三列布局的几种方式啦啦啦

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Difficulty in updating caching of official account web pages: How to avoid the old cache affecting the user experience after version update? Difficulty in updating caching of official account web pages: How to avoid the old cache affecting the user experience after version update? Mar 04, 2025 pm 12:32 PM

The official account web page update cache, this thing is simple and simple, and it is complicated enough to drink a pot of it. You worked hard to update the official account article, but the user still opened the old version. Who can bear the taste? In this article, let’s take a look at the twists and turns behind this and how to solve this problem gracefully. After reading it, you can easily deal with various caching problems, allowing your users to always experience the freshest content. Let’s talk about the basics first. To put it bluntly, in order to improve access speed, the browser or server stores some static resources (such as pictures, CSS, JS) or page content. Next time you access it, you can directly retrieve it from the cache without having to download it again, and it is naturally fast. But this thing is also a double-edged sword. The new version is online,

How do I use HTML5 form validation attributes to validate user input? How do I use HTML5 form validation attributes to validate user input? Mar 17, 2025 pm 12:27 PM

The article discusses using HTML5 form validation attributes like required, pattern, min, max, and length limits to validate user input directly in the browser.

What are the best practices for cross-browser compatibility in HTML5? What are the best practices for cross-browser compatibility in HTML5? Mar 17, 2025 pm 12:20 PM

Article discusses best practices for ensuring HTML5 cross-browser compatibility, focusing on feature detection, progressive enhancement, and testing methods.

How to efficiently add stroke effects to PNG images on web pages? How to efficiently add stroke effects to PNG images on web pages? Mar 04, 2025 pm 02:39 PM

This article demonstrates efficient PNG border addition to webpages using CSS. It argues that CSS offers superior performance compared to JavaScript or libraries, detailing how to adjust border width, style, and color for subtle or prominent effect

What is the purpose of the <datalist> element? What is the purpose of the <datalist> element? Mar 21, 2025 pm 12:33 PM

The article discusses the HTML &lt;datalist&gt; element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

What is the purpose of the <progress> element? What is the purpose of the <progress> element? Mar 21, 2025 pm 12:34 PM

The article discusses the HTML &lt;progress&gt; element, its purpose, styling, and differences from the &lt;meter&gt; element. The main focus is on using &lt;progress&gt; for task completion and &lt;meter&gt; for stati

How do I use the HTML5 <time> element to represent dates and times semantically? How do I use the HTML5 <time> element to represent dates and times semantically? Mar 12, 2025 pm 04:05 PM

This article explains the HTML5 &lt;time&gt; element for semantic date/time representation. It emphasizes the importance of the datetime attribute for machine readability (ISO 8601 format) alongside human-readable text, boosting accessibilit

What is the purpose of the <meter> element? What is the purpose of the <meter> element? Mar 21, 2025 pm 12:35 PM

The article discusses the HTML &lt;meter&gt; element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates &lt;meter&gt; from &lt;progress&gt; and ex

See all articles