찾다
웹 프론트엔드HTML 튜토리얼常见的几种布局总结_html/css_WEB-ITnose

目录

    1. 一列定宽,一列自适应屏幕宽
      1. 方法二:position+margin
      2. 方法三:float+负margin
    1. 左右两栏宽度固定,中间宽度自适应
    2. 左右两栏宽度自适应,中间宽度固定
      1. 方法一 中间定宽,借助负margin值

本文主要介绍网页中常用的三栏布局的实现方法。

本文主要参考了下面的文章:

我熟知的三种三栏网页宽度自适应布局方法 -张鑫旭

两栏布局,三栏布局,等高布局,流式布局 -小七

CSS布局——左定宽度右自适应宽度并且等高布局 -w3cplus

八种创建等高列布局

两栏布局

一列定宽,一列自适应屏幕宽

要实现的目标是: 左侧固定宽,右侧自适应屏幕宽。

方法一:float+margin

思路:左边浮动,右边加上一个margin-left值,即可实现左边固定,右边自适应布局。

HTML和CSS如下:

两栏布局方法一

  • html
  • css

<div id="left"></div><div id="content"></div>

点击这里查看Demo

方法二:position+margin

思路:左边绝对定位,右栏使用margin-left实现。

HTML和CSS如下:

两栏布局方法二

  • html
  • css

<div id="left">左边内容</div><div id="content">主要内容</div>

点击这里查看Demo

方法三:float+负margin

思路:利用浮动和负边距实现。

HTML和CSS如下:

两栏布局方法三

  • html
  • css

<div id="left">左边内容</div><div id="content">  <div id="contentInner">主要内容</div></div>

点击这里查看Demo

两列固定宽度

边栏在左,主内容在右

HTML和CSS如下:

两栏左右宽度固定布局

  • html
  • css

<div class="wraper">  <div class="header">     <h1 id="这是头部文字">这是头部文字</h1>  </div>  <div class="aside sidebar">     <h2 id="这是侧边栏">这是侧边栏</h2>  </div>  <div class="main-content">     <h2 id="主要内容">主要内容</h2>  </div>  <div class="footer">     <h2 id="这是底部内容">这是底部内容</h2>  </div></div>

点击这里查看Demo

边栏在右,主内容在左

可以保持上面代码中的HTML结构不变,仅仅可以CSS中侧边栏的浮动方式即可:

两栏左右宽度固定布局2

  • html
  • css

<div class="wraper">  <div class="header">     <h1 id="这是头部文字">这是头部文字</h1>  </div>  <div class="aside sidebar">     <h2 id="这是侧边栏">这是侧边栏</h2>  </div>  <div class="main-content">     <h2 id="主要内容">主要内容</h2>  </div>  <div class="footer">     <h2 id="这是底部内容">这是底部内容</h2>  </div></div>

点击这里查看Demo

其他实现两列固定宽度布局的方式:

http://www.w3cplus.com/css/layout/fixed-layout/two-columns-2.html

http://www.w3cplus.com/css/layout/fixed-layout/two-columns-3.html

三栏布局

要实现的目标是:左中右三栏布局,左右两栏宽度固定(设为200px),中间宽度自适应。

左右两栏宽度固定,中间宽度自适应

方法一:绝对定位法

思路:左右两栏采用绝对定位,分别固定于页面的左右两侧,中间的主体栏用margin值撑开距离。HTML和CSS如下:

三栏布局之绝对定位

  • html
  • css

<div id="left"></div><div id="main">    <div class="box">中间内容</div></div><div id="right"></div>

点击这里查看Demo

这种方法的缺点在于:如果中间栏含有宽度的内部元素(box),当浏览器的宽度小于一定程度时,左右两侧的固定栏和中间的box发生层叠。

方法二:margin负值法

思路:首先,中间的主体是使用双层标签,外层div宽度100%显示,并且浮动。内层的div为真正的主体内容,含有左右200px的margin值。左栏和右栏都是用margin负值法,左栏左浮动,margin-left为-100%,使左栏的div定位到页面左侧;右栏也是左浮动,其margin-left值负值,大小是本身的宽度200px。

HTML和CSS如下:

三栏布局之margin负值法

  • html
  • css

<div id="main">    <div id="content">中间内容</div></div><div id="right"></div><div id="left"></div>

点击这里查看Demo

这种方法需要注意的是几个div的顺序, 先是主体部分div,然后再是左右两栏的div。同样存在方法一的不足,当中间栏含有一定宽度的内部块元素时,缩小浏览器窗口左右栏内容和中间块元素重叠。

方法三:自身浮动法

应用了标签浮动跟随特性,左栏左浮动,右栏右浮动,主体放在后面,可以实现自适应。

这里几个div的顺序关键是主体的div放在后面,左右两栏顺序任意。

HTML和CSS如下:

三栏布局之自身浮动法

  • html
  • css

<div id="right"></div><div id="left"></div><div id="main"></div>

点击这里查看Demo

这个方法的优点是简洁高效,缺点也很明显,中间栏要避免 clear: both

双飞翼布局

使用浮动,负边距,和相对定位来实现。优点:

  • 实现内容和布局的分离
  • mian部分是自适应宽度的,任何一栏都可以是最高一栏
  • 需要的hack少,在浏览器中兼容性好

缺点:main需要额外的包装层

HTML和CSS如下:

双飞翼布局

  • html
  • css

<div id="page">  <div id="head">head</div>  <div id="body">    <div class="main">      <div class="main-content">Main-content</div>    </div>    <div class="Sub">sub</div>    <div class="Extra">Extra</div>  </div>  <div id="foot">Foot</div></div>

先把最重要的main放到前面,并将main占满100%,然后是sub, extra。将三者都采用浮动布局: float:left,利用margin-left: -100%,把sub拉倒最左边,同理用margin-left: -180px将extra放到右侧。这样将sub 和extra定位到正确的位置。然后定位main:给main增加一层包裹,里层的main-content的作用目标是定位main到合适的位置,为此,引入margin。

点击这里查看Demo

圣杯布局

圣杯布局和双飞翼布局都是实现两边顶宽,中间自适应的三栏布局,中间栏放在文档流前面优先渲染。两者不同之处在于”中间栏div的内容不被遮挡的实现思路”:

  • 双飞翼布局如上介绍,是在main的内部又创建div来放置内容,在该div里设置margin-left和margin-right为左右两栏div留出位置。
  • 圣杯布局的实现思路是将div设置padding-left和padding-right后,将左右两个div用相对布局position:relative并配合right和left属性,以便左右两栏div移动后不被遮挡。

HTML和CSS如下:

圣杯布局

  • html
  • css

<div id="page">  <div id="header"> This is the Header</div>  <div id="container">    <div id="center" class="column" >Main content</div>    <div id="left" class="column" >left sidebar </div>    <div id="right" class="column" > right sidebar </div>  </div>  <div id="footer-wrapper">    <div id="footer">This is the footer </div>  </div></div>

点击这里查看Demo

左右两栏宽度自适应,中间宽度固定

方法一 中间定宽,借助负margin值

HTML和CSS如下:

三栏布局之中间固定

  • html
  • css

<div id="left">    <div class="inner"></div></div><div id="main">  <div class="inner"></div></div><div id="right">  <div class="inner"></div></div>

点击这里查看Demo

使用这种方法实现的效果不太理想,当浏览器窗口缩小的时候,左右两侧的内容就会被”挤掉”

方法二 使用flex

HTML和CSS如下:

三栏布局之中间固定

  • html
  • css

<div class="grid">  <div class="col fluid">左侧内容</div>  <div class="col fixed">中间</div>  <div class="col fluid">右侧内容</div></div>

点击这里查看Demo

清除浮动

用来解决父元素高度自适应高度最大的子元素。只需在浮动元素父元素添加伪类:

.container:after { content: ""; display: block; clear: both;}

未完待续。。。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
HTML : 웹 페이지 구조 구축HTML : 웹 페이지 구조 구축Apr 14, 2025 am 12:14 AM

HTML은 웹 페이지 구조를 구축하는 초석입니다. 1. HTML은 컨텐츠 구조와 의미론 및 사용 등을 정의합니다. 태그. 2. SEO 효과를 향상시키기 위해 시맨틱 마커 등을 제공합니다. 3. 태그를 통한 사용자 상호 작용을 실현하려면 형식 검증에주의를 기울이십시오. 4. 자바 스크립트와 결합하여 동적 효과를 달성하기 위해 고급 요소를 사용하십시오. 5. 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함되며 검증 도구가 필요합니다. 6. 최적화 전략에는 HTTP 요청 감소, HTML 압축, 시맨틱 태그 사용 등이 포함됩니다.

텍스트에서 웹 사이트로 : HTML의 힘텍스트에서 웹 사이트로 : HTML의 힘Apr 13, 2025 am 12:07 AM

HTML은 웹 페이지를 작성하는 데 사용되는 언어로, 태그 및 속성을 통해 웹 페이지 구조 및 컨텐츠를 정의합니다. 1) HTML과 같은 태그를 통해 문서 구조를 구성합니다. 2) 브라우저는 HTML을 구문 분석하여 DOM을 빌드하고 웹 페이지를 렌더링합니다. 3) 멀티미디어 기능을 향상시키는 HTML5의 새로운 기능. 4) 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함됩니다. 5) 최적화 제안에는 시맨틱 태그 사용 및 파일 크기 감소가 포함됩니다.

HTML, CSS 및 JavaScript 이해 : 초보자 안내서HTML, CSS 및 JavaScript 이해 : 초보자 안내서Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

HTML의 역할 : 웹 컨텐츠 구조HTML의 역할 : 웹 컨텐츠 구조Apr 11, 2025 am 12:12 AM

HTML의 역할은 태그 및 속성을 통해 웹 페이지의 구조와 내용을 정의하는 것입니다. 1. HTML은 읽기 쉽고 이해하기 쉽게하는 태그를 통해 컨텐츠를 구성합니다. 2. 접근성 및 SEO와 같은 시맨틱 태그 등을 사용하십시오. 3. HTML 코드를 최적화하면 웹 페이지로드 속도 및 사용자 경험이 향상 될 수 있습니다.

HTML 및 코드 : 용어를 자세히 살펴 봅니다HTML 및 코드 : 용어를 자세히 살펴 봅니다Apr 10, 2025 am 09:28 AM

"Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구HTML, CSS 및 JavaScript : 웹 개발자를위한 필수 도구Apr 09, 2025 am 12:12 AM

HTML, CSS 및 JavaScript는 웹 개발의 세 가지 기둥입니다. 1. HTML은 웹 페이지 구조를 정의하고 등과 같은 태그를 사용합니다. 2. CSS는 색상, 글꼴 크기 등과 같은 선택기 및 속성을 사용하여 웹 페이지 스타일을 제어합니다.

HTML, CSS 및 JavaScript의 역할 : 핵심 책임HTML, CSS 및 JavaScript의 역할 : 핵심 책임Apr 08, 2025 pm 07:05 PM

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

HTML은 초보자를 위해 쉽게 배우나요?HTML은 초보자를 위해 쉽게 배우나요?Apr 07, 2025 am 12:11 AM

HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경