CSS實現用戶界面開發和交互式布局

2024-02-20    分類: 網站建設

近幾年的前端工程師接觸頁面編碼的時候,Table布局的時代已經沒落了,取而代之的是習慣用DIV來布局組織頁面架構,當然這是大勢所趨。更何況HTML5+CSS3的黃金組合已經越來越被推崇!而Table只能做回老本行:去組織和展現數據信息。今天我們要談到是CSS里的display。算是另辟蹊徑來談談tables吧。

本文提供了簡單可靠的UI布局解決方案,因為CSS tables十分簡單易懂,因此在交互式設計中用起來十分方便。下面我們來具體介紹這些超贊的CSS屬性。

CSS 屬性/值 模式能夠實現很多用其他方式(如Flexbox)實現比較麻煩的布局。本文主要介紹display: table 和 display :table-cell。首先我們要解釋一下這里沒有任何新的技術,其實人們已經討論這些技術很多年了。只不過很少有人知道它們并真正去使用它們。

CSS tables

首先大家要清楚,CSS tables只是用來展示的。也就是說,CSS tables 和 HTML table 標簽沒有任何相關聯性,它們之間的使用互不影響。有些讀者可能認為使用CSS tables是不好的,希望我們這篇文章能夠澄清開發者概念中的一些混淆。

我們以前常用的是將一個標簽屬性設為’display:block’,所以類似的我們只需要用’display:table’或’display:table-cell;’就可以了。這些屬性純粹是用于布局設計。

為什么CSS tables 很棒

CSS table 不是新的東西,它是CSS2.1章程里的內容。它的兼容性很強,除了IE7及以下版本,其他的瀏覽器它都可以使用。我第一次看到CSS table是在我讀的一本書里,這要追溯到2008年,那個時候很多人認為這個技術不好用(那個時候IE8其實也只是剛剛出現)。但如今CSS table已經相對容易維護和開發。

常見問題及實例

讓我們來看看這些CSS屬性能做什么。

縱向居中內容

用display:table把容器中內容橫向縱向居中十分簡單,如下:

注意我只需要把一個標簽(table-cell)放入另一個標簽(table)中:

注意事項:

Display屬性設定為table

沒有寬度的話,table寬度將是它內容的寬度。

我已經把table-layout屬性定位fixed。默認的auto。之后我們會詳細說明。

嵌套的元素設定為table-cell。Vertical-align屬性用來縱向居中。(不需要任何padding!)

Text-align:center用于將水平軸的文本居中

Fixed – fluid – fixed 布局

這里是一個table內包含了三個table-cells:第一個和最后一個被設定了一個固定寬度;第二個沒有設定寬度,于是它占用了其他可用的空間。以下是相關HTML和CSS代碼:

這里方便的一點就是無論table的寬度設為多少,嵌在table-cells的元素是等高的并等同于table的高度。所以說css table很適用于多列布局。

在嵌入元素中使用overflow hidden

我們來繼續上一個例子。設想你有一個display:table在最外層,然后里面有display:table-cell 的元素(可能是主體內容或者側邊條),其中有一部分你有一個水平的滾動區域。這里我們會遇到可能一個過大的div并使用overflow屬性:

如果你使用display:table屬性,并且你沒有設定table-layout:fixed,你可能會奇怪為什么table-cells中的一個消失了。

Table-layout:fixed

默認的大多數瀏覽器都有一個’auto’ table 布局模式,這使得table的寬度由它的內容所決定。但當你有一些更大的元素(比如剛才的滾動條),你會發現會遇到一些問題。在這些例子中,僅需要保證應用了table-layout:fixed就可以解決了。

制作一個簡單的滾動切換效果 display:table和display:table-cell

沒有四舍五入的問題

之前我一直在博客和最近的一本新書中( Sass and Compass for Designers)抱怨的是交互性網格問題,這個問題在一大堆使用百分比設定寬度的float的元素一個接一個排列時就會出現,然而用display:table和display:table-cell便不會有這類問題。

記住,不是說你在一個顯示屏尺寸中使用display:table,你就必須在另一個中使用它。

Media queries給了你方法去在不用的顯示屏尺寸中定義不同的布局,使用display:table在一個顯示屏尺寸中然后在display:block中顯示另一個。

額外的一些需要記住的東西:

你不能夠在table-cells中再套其他的table-cells

默認的table-cells占據了所有table中可用的空間,因此兩個tables-cells就會分別占據50%,三個會占據33.33333%,四個占據25%等等。然而,如果一個cell中的內容超過cell寬度,我們便需要手動設定尺寸。

我們能夠在tables和table-cells中嵌套tables

Float對table-cell無影響

Margin對table-cell的元素無影響

Padding能夠被用來設定內容空間,所以*{box-sizing: border-box}是你的朋友

結論

在使用display:table及相關屬性時你會發現很多樂趣,上述內容只是入門,希望大家能在日后深入研究并發現一些新的功能。

本文來源于成都網站建設公司與成都網站設計制作公司-創新互聯成都公司!

文章題目:CSS實現用戶界面開發和交互式布局
分享地址:http://m.kartarina.com/news20/318020.html

成都網站建設公司_創新互聯,為您提供網站導航App開發網站設計公司App設計品牌網站設計網站內鏈

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 永久免费AV无码网站国产| 精品无码一区二区三区电影| 无码毛片视频一区二区本码| 亚洲一区AV无码少妇电影☆| 无码国产精品一区二区免费式直播| 日韩网红少妇无码视频香港| 免费无码黄动漫在线观看| 国产AV无码专区亚洲Av| 日韩毛片无码永久免费看| 中文字幕无码无码专区| 无码人妻一区二区三区免费| 无码人妻精品中文字幕| 国产成人精品无码专区| 亚洲AV无码乱码在线观看裸奔 | 日本无码一区二区三区白峰美| 国产成人无码aa精品一区| 无码人妻一区二区三区免费n鬼沢| 国产精品成人无码久久久| 老子午夜精品无码| 亚洲精品无码国产| 日韩精品无码免费视频 | 一本天堂ⅴ无码亚洲道久久| 东京热人妻无码人av| 无码日本精品XXXXXXXXX| 小SAO货水好多真紧H无码视频| 狠狠躁狠狠爱免费视频无码| 无码国内精品久久人妻麻豆按摩| 中文字幕无码不卡一区二区三区 | 无码免费一区二区三区免费播放| 亚洲国产精品无码久久青草| (无码视频)在线观看| 亚洲乱人伦中文字幕无码| 久久亚洲精品成人无码网站| 无码成人一区二区| 亚洲AV无码专区亚洲AV伊甸园| 亚洲AV无码专区国产乱码电影 | 无码视频免费一区二三区| 久久久久无码精品国产h动漫| 最新无码人妻在线不卡| 无码国产精成人午夜视频不卡| 亚洲av无码专区在线观看亚|