兩邊寬度已知,如何讓中間自適應
阿新 • • 發佈:2017-11-12
語法 -c class title enter ces layout style margin
共有五種布局方式:
1.浮動布局
2.絕對定位布局
3.flexbox布局
4.表格(table)布局
5.網格 (grid)布局
1.浮動布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>頁面布局/兩邊寬度已知,如何讓中間自適應</title> <style type="text/css"> html * { padding: 0; margin: 0; } .layout { margin-top: 20px; } .layout div { min-height: 100px; } .layout .left, .layout .right { width: 300px; } .layout .left { background: pink; } .layout .right { background: orange; }.layout .center { background: #3FE5F0; } </style> </head> <body> <!-- 浮動布局 --> <section class="layout float"> <style type="text/css" media="screen"> .layout.float .left { float: left; } .layout.float .right{ float: right; } </style> <article class="left-right-center"> <div class="left"></div> <div class="right"></div> <div class="center"> <h1>浮動解決方案</h1> 1.這是一個三欄浮動布局的中間部分 2.這是一個三欄浮動布局的中間部分 3.這是一個三欄浮動布局的中間部分 </div> </article> </section> </body> </html>
2.絕對定位布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>頁面布局/兩邊寬度已知,如何讓中間自適應</title> <style type="text/css"> html * { padding: 0; margin: 0; } .layout { margin-top: 20px; } .layout div { min-height: 100px; } .layout .left, .layout .right { width: 300px; } .layout .left { background: pink; } .layout .right { background: orange; } .layout .center { background: #3FE5F0; } </style> </head> <body> <!-- 絕對定位解決方案 --> <section class="layout absolute"> <style type="text/css" media="screen"> .layout.absolute .left-center-right>div { position: absolute; } .layout.absolute .left { left: 0; } .layout.absolute .right { right: 0; } .layout.absolute .center { left: 300px; right: 300px; } </style> <article class="left-center-right"> <div class="left"></div> <div class="center"> <h1>絕對定位解決方案</h1> 1.這是一個三欄絕對定位布局中間部分 2.這是一個三欄絕對定位布局中間部分 3.這是一個三欄絕對定位布局中間部分 </div> <div class="right"></div> </article> </section> </body> </html>
3.flexbox布局
flexbox布局教程:Flex 布局教程:語法篇 、Flex 布局教程:實例篇。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>頁面布局/兩邊寬度已知,如何讓中間自適應</title> <style type="text/css"> html * { padding: 0; margin: 0; } .layout { margin-top: 20px; } .layout div { min-height: 100px; } .layout .left, .layout .right { width: 300px; } .layout .left { background: pink; } .layout .right { background: orange; } .layout .center { background: #3FE5F0; } </style> </head> <body> <!-- flexbox 解決方案 --> <section class="layout flexbox"> <style type="text/css" media="screen"> .layout.flexbox { margin-top: 20px; } .layout.flexbox .left-center-right { display: flex; } .layout.flexbox .left-center-right .center { flex: 1; } </style> <article class="left-center-right"> <div class="left"></div> <div class="center"> <h1>flexbox解決方案</h1> 1.這是一個三欄flexbox布局中間部分 2.這是一個三欄flexbox布局中間部分 3.這是一個三欄flexbox布局中間部分 </div> <div class="right"></div> </article> </section> </body> </html>
4.表格(table)布局
基於CSS屬性display:table的表格布局的使用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>頁面布局/兩邊寬度已知,如何讓中間自適應</title> <style type="text/css"> html * { padding: 0; margin: 0; } .layout { margin-top: 20px; } .layout div { min-height: 100px; } .layout .left, .layout .right { width: 300px; } .layout .left { background: pink; } .layout .right { background: orange; } .layout .center { background: #3FE5F0; } </style> </head> <body> <!-- 表格解決方案 --> <section class="layout table"> <style type="text/css" media="screen"> .layout.table .left-center-right { width: 100%; display: table; height: 100px; } .layout.table .left-center-right>div { display: table-cell; } </style> <article class="left-center-right"> <div class="left"></div> <div class="center"> <h1>表格解決方案</h1> 1.這是一個三欄表格布局中間部分 2.這是一個三欄表格布局中間部分 3.這是一個三欄表格布局中間部分 </div> <div class="right"></div> </article> </section> </body> </html>
5.網格 (grid)布局
CSS Grid布局指南
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>頁面布局/兩邊寬度已知,如何讓中間自適應</title> <style type="text/css"> html * { padding: 0; margin: 0; } .layout { margin-top: 20px; } .layout div { min-height: 100px; } .layout .left, .layout .right { width: 300px; } .layout .left { background: pink; } .layout .right { background: orange; } .layout .center { background: #3FE5F0; } </style> </head> <body> <!-- 網格布局 --> <section class="layout grid"> <style type="text/css" media="screen"> .layout.grid .left-center-right { display: grid; width: 100%; grid-template-rows: 100px; /* 行高 */ grid-template-columns: 300px auto 300px; /* 我們需要三列,左右兩列各300px,中間自適應 */ } </style> <article class="left-center-right"> <div class="left"></div> <div class="center"> <h1>網格布局解決方案</h1> 1.這是一個三欄網格布局中間部分 2.這是一個三欄網格布局中間部分 3.這是一個三欄網格布局中間部分 </div> <div class="right"></div> </article> </section> </body> </html>
兩邊寬度已知,如何讓中間自適應