CSS3 网格布局(grid-layout)基础知识
CSS3引入了新的网格布局(grid layout),以适应显示和设计技术的发展(尤其是移动设备优先的响应式设计)。
主要目标是建立一个稳定可预料且语义正确的网页布局模式,用来替代过往表现不稳定且繁琐的table、flow以及JS脚本混合技术来实现的网页动态布局。
本文将简单而准确的介绍网格布局属性的基本概念和使用方法(摘自踏得网在线HTML5教程)。
1. 概述
网格模板区域(grid-template-areas)、网格模板行(grid-template-rows)和网格模板列(grid-template-columns),这3个属性共同显式定义了一个网格容器。
而网格模板(grid-template)属性是一个用来同时设置这3个属性的速写(shorthand)。 grid items内容可能会超出显式网格,这时网格容器会自动生成隐式轨道(implicit track),这些隐式轨道的尺寸由 grid-auto-rows 和 grid-auto-columns 属性所确定。
显式网格的大小是由网格模板区域定义的行/列数以及在网格模板行/网格模板列属性定义了尺寸的行/列数中的较大者决定的。
任何由网格模板区域定义的行或列但没有在网格模板行/网格模板列中定义尺寸,则由grid-auto-rows或grid-auto-columns属性来确定大小。
如果没有定义显式轨道,显式网格依然在每根轴线上包含一个网格线。
网格定位(grid-placement)属性中的数字索引从显式网格的边缘开始计算。如果从起始侧开始,索引为以1开始的正数。反之从结束侧开始,则为以-1开始的负数。
2. 轨道尺寸:grid-template-rows 和 grid-template-columns
轨道尺寸函数可以是具体的长度、相对于网格容器的百分比、按实际填充内容计算(如min-content)或者可用空间片段。
它还可以通过minmax(min,max)函数来指定一个长度范围,也就是介于min和max之间的一个尺寸,其中min/max参数同样可以使用前面提到的这些尺寸定义方式。
grid-template-columns属性指定网格列的轨道列表,而grid-template-rows属性指定网格行的轨道列表。
3. 命名区域:grid-template-areas属性
此属性指定命名网格区域,该区域与任何特定的网格项无关,但可在网格定位(grid-placement)属性中引用。
网格模板区域(grid-template-areas)属性也提供了一个可视化的网格结构,使网格容器的整体布局更容易被理解。
网格模板区域属性中每个单独的字符串(string)定义了一个行,而字符串中的每个单元(cell)定义了一个列。
浏览器使用最长匹配语义来把字符串解析为如下标记(token)列表:
1. 一串名称编码点(name code points),代表一个命名单元标记(named cell token),其名称由code points(即Unicode编码空间中的字符)组成。
2. 一串单个或多个".",代表一个空单元标记(null cell token)。
3. 一串空格(whitespace),代表不会生成任何标记。
4. 其它字符串,代表一个垃圾标记(trash token)。
4. 应用实例
上述描述严格但有点死板,我们还是用一个经典的响应式多列多行页面布局实例来进行说明:
[ CSS代码 ]
#page { display: grid; width: 100%; height: 250px; grid-template-areas: "head head" "nav main" "foot ...."; grid-template-rows: 50px 1fr 30px; grid-template-columns: 150px 1fr;}#page > header { grid-area: head; background-color: #8ca0ff;}#page > nav { grid-area: nav; background-color: #ffa08c;}#page > main { grid-area: main; background-color: #ffff64;}#page > footer { grid-area: foot; background-color: #8cffa0;}
<section id="page"> <header>Header</header> <nav>Navigation</nav> <main>Main area</main> <footer>Footer</footer></section>
1. 相邻的2个head字符串,将生成一个名为head的网格区域,跨越2列;
2. nav、main和foot字符串分别生成与其同名的3个网格区域;
3. 4个点(....)连线生成一个空网格区域。
然后通过grid-template-rows定义了各行轨道高度,
第1、3行分别为50px和30px固定高度,第二行为弹性尺寸即可用空间减去固定尺寸后依据弹性因子按比例分配的长度,
在这里只有一个弹性尺寸,且弹性因子为1,表示占用所有剩余空间宽度(也就是:网格容器宽度 - 50px - 30px)。
通过grid-template-columns定义了各列轨道宽度。第1列为150px固定宽度,第2列占据水平方向的剩余空间。
你可以通过在线实例来自己测试下:http://wow.techbrood.com/fiddle/15975
【注意:网格布局相关规范仍处于Working Draft状态,所以请在浏览器中进行实际测试以鉴别其兼容性。】
by iefreer

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex
