亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

使用min-content實現(xiàn)容器寬度自適應(yīng)于內(nèi)部元素

來源:毛三十 發(fā)布時間:2018-09-19 14:17:32 閱讀量:1467

前言

設(shè)計師可以分為如下兩類:

  • 先做好設(shè)計,然后將內(nèi)容放入靜態(tài)框架中

  • 優(yōu)秀的設(shè)計師充分考慮內(nèi)容的各個方面及其上下文,并創(chuàng)建適合于內(nèi)容的設(shè)計

HTML原生就是響應(yīng)式的(HTML內(nèi)容在視口內(nèi)流式的分布)。隨著CSS的廣泛應(yīng)用,設(shè)計者創(chuàng)建了許多固定布局的“盒子”并把內(nèi)容強制的放在盒子之中,這有悖于HTML原生響應(yīng)的特性。

過去幾年出現(xiàn)了一場革命,包括自適應(yīng)設(shè)計,響應(yīng)式設(shè)計,移動優(yōu)先設(shè)計等。所有這些思想最根本部分就是優(yōu)先考慮內(nèi)容。CSS3也因此定義和實現(xiàn)一些新的屬性。其中就包括內(nèi)在和外在的寬度(intrinsic and extrinsic width values)。

引入問題

我們以一個常規(guī)的 WEB 頁面設(shè)計問題(figure 元素內(nèi)的圖片)來引出問題并加以說明。

<figure>
    <img src="o4iaq1g8nr.jpg" />
    <figcaption>www.30ke.cn</figcaption>
    <p>三十客 - 一個專注于前端學(xué)習(xí)和分享的網(wǎng)站。</p></figure>

figure默認(rèn)顯示效果

因為figure是塊級標(biāo)記,所以元素一直延伸到至整個容器中。 在以內(nèi)容優(yōu)先的設(shè)計中,我們通常希望容器 (本例中為 figure元素) 盡可能小。 到目前為止,有幾種方法可以實現(xiàn)。

figure {
    float: left;}

figure默認(rèn)顯示效果

通過設(shè)置浮動,可以實現(xiàn) figure 元素折疊。但是如果 figure 中的 p (段落)元素寬于圖片寬度,則figure元素會收縮至最寬的子元素,而不是圖片的寬度。 使用display: inline-block 或 table-cell 同樣有上述問題。

figure {
    width: 500px;}

將 figure 元素寫死一個寬度,但這使得元素固定并失去響應(yīng)特性。

用 min-width 來幫忙

我們最終就是要找到最優(yōu)的圖片容器的寬度以最達到最好的適應(yīng)內(nèi)部圖片的目的。如果內(nèi)部的文本換行顯示也沒關(guān)系。

我們可以通過 min-content 來達到目的。盡管該值 2006 年就出現(xiàn)了,但還處在實驗階段,因此需要添加不同瀏覽器前綴。

figure {
    border: 2px solid black;
    background: #cae9b8;
    margin: 0;
    width: -moz-min-content;
    width: -webkit-min-content;
    width: min-content;}

上述代碼,很好的解決了上述問題。而且 margin 和 padding 在圖片容器內(nèi)部仍然有效。

min-content 是內(nèi)在和外在的寬高系列值中的一個,其它還包括 max-content , fit-content等。這些值和 flexbox ,grid 和其它布局系統(tǒng),使得WEB設(shè)計更優(yōu)秀更靈活。 min-content 的支持性很好,所有現(xiàn)代主流瀏覽器都支持該值,但是 Internet Explorer and Opera Mini 并不支持。

因此我們借助 max-widht 實現(xiàn)了回退的方案。

figure {
    max-width: 500px;
    max-width: min-content;}

完整的帶回退的顯示方案見如下演示程序:

在線演示程序

本文主要匯編自 Dudley Storey 的一篇博客,并加入了針對Internet Explorer and Opera Mini 的回退方案。但是因為本人水平有限,文中難免存在描述不清,代碼不完善等問題,還請大家多多予以批評指正!

參考文獻

CSS Intrinsic & Extrinsic Sizing Module Level 3

Design From the Inside Out With CSS Min-Content

play.csssecrets.io/


標(biāo)簽: HTML
分享:
評論:
你還沒有登錄,請先