久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

值得了解的關于CSS auto的相關知識?。?/a>

值得了解的關于CSS auto的相關知識??!

在CSS中,我們有auto值,它可以用于像margin,position,heightwidth等屬性。在本文中,會先解釋auto的工作方式以及如何最大程度地利用auto的技術細節(jié),當然,會配合一些用例和示例。

簡介

auto關鍵字的使用因屬性而異。 對于本文,我將在每個屬性的上下文中解釋值。

width: auto

塊級元素(如<div><p>)的初始寬度是auto,這使得它們占據了包含它們的塊的整個水平空間。

根據CSS規(guī)范

‘margin-left’ + ‘border-left-width’ + ‘padding-left’ + ‘width’ +‘padding-right’ + ‘border-right-width’ + ‘margin-right’ = 塊的寬度

當一個元素的寬度值為auto時,它包含margin、paddingborder,不會變得比它的父元素大。其中 content 的寬度將是content本身減去margin、paddingborder

值得了解的關于CSS auto的相關知識??!

我們以上面的模型為例。

html

<div class="wrapper">   <div class="item">     <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eos maxime cum non cupiditate, perferendis saepe vitae fugiat id exercitationem officiis voluptate sint ducimus commodi reiciendis error itaque dolores ipsam? Ea!</p>   </div> </div>

css

* {     box-sizing: border-box; }  .wrapper {       max-width: 600px;       margin: 2rem auto 0;       padding: 1rem; }  .item {       padding: 1rem;       margin: 0 50px;       border: 15px solid #1f2e17; }

一切都好,元素 item 被限制在其父項中。

值得了解的關于CSS auto的相關知識??!

是,如果我們將元素item的寬度更改為100%而不是auto會發(fā)生什么? 該元素將占用其父項的100%,加上左側和右側的邊距。

// css .item {       width: 100%;       padding: 1rem;       margin: 0 50px;       border: 15px solid #1f2e17; }

值得了解的關于CSS auto的相關知識??!

該元素的寬度為568px,是以下各項的總和:

‘border-left-width’ + ‘padding-left’ + ‘width’ + ‘padding-right’ +‘border-right-width’ = 15 + 16 + 506 + 16 + 15 =568px

如果方向是ltr,則完全忽略margin-right。在我們的例子中,這種情況發(fā)生了。但是,如果布局是rtl,那么margin-left將被忽略。

值得了解的關于CSS auto的相關知識?。?/></p>
<blockquote>
<p>事例源碼:https://codepen.io/shadeed/pen/f305220fbd4b444371bdef11dad014ec?editors=0100</p>
</blockquote>
<h2><strong style=width 用例: auto

僅僅解釋基礎知識不足以使我們掌握這一概念,因此需要一些事例來說明。

手機和 PC 之間的寬度不同

值得了解的關于CSS auto的相關知識!!

我們有一組按鈕。在移動設備上,我們希望它們彼此相鄰(每個按鈕包裝器占據其父元素的50%),而在桌面設備上,每個按鈕都應該占據其父元素的全部寬度。該怎么做?

HTML

<div class="group">     <div class="group__item">         <button class="c-button">Sign In</button>     </div>     <div class="group__item">         <button class="c-button c-button--ghost">Register</button>     </div> </div>

這里使用 flex 布局將按鈕排列在一起。

CSS

.group {     display: flex; }  .group__item {     width: 50%; }

對于 PC,我們每個項需要都取全寬。在這種情況下,你可能傾向于使用width: 100%,對嗎?下面是一個更好的解決方案。

CSS

@media (min-width: 800px) {     /* Revert the wrapper to a block element instead of flex */     .group {         display: block;     }      .group__item {         width: auto;     } }

由于.group是一個塊元素,因此使用width: auto可以很好地填充其父元素的可用空間。

事例源碼:https://codepen.io/shadeed/pen/399de6d9d473137998f87f957cfdfa03?editors=1100

height: auto

說到height,情況就不一樣了。元素的高度等于默認值為auto的內容。

考慮下面的例子

<div class="wrapper">   <div class="item">What's my height?</div> </div>

要使.item獲得其容器的全部高度,我們可以使用以下方法之一:

  1. .wrapper一個固定的高度,然后為.item元素添加height: 100%

  2. .wrapper使用 flex 布局,默認情況下它將拉伸子項.item

CSS

.wrapper {     height: 200px; }  .item {     height: 100%; }

值得了解的關于CSS auto的相關知識??!

margin 和 auto 關鍵字

對于margin,最常見的用例是將已知寬度的元素水平居中。

請考慮以下示例:

值得了解的關于CSS auto的相關知識?。?/></p>
<p>要讓上面的藍色矩形居中,可以使用下面的方法:</p>
<pre>.element {     margin-left: auto;     margin-right: auto; }</pre>
<p><strong>根據CSS規(guī)范:</strong></p>
<blockquote>
<p>如果<code>margin-left</code>和<code>margin-right</code>值均為<code>auto</code>,則它們的使用值相等。 這使元素相對于包含塊的邊緣水平居中。</p>
</blockquote>
<p><img src=

具有絕對定位元素的 margin:auto

值得了解的關于CSS auto的相關知識!!

另一個不太常見的將絕對定位元素居中的用例是margin: auto。當我們有一個元素應該在它的父元素內部水平和垂直居中時,我們可能會傾向于使用translateXtranslateY

我們可以使用下面方法讓具有絕對定位元素居中:

  1. 設置的寬度和高度。

  2. 元素應具有position: absolute

HTML

<div class="wrapper">   <div class="item">I am centered.</div> </div>

CSS

.wrapper {     position: relative; }  .item {     width: 200px;     height: 100px;     position: absolute;     left: 0;     top: 0;     right: 0;     bottom: 0;     margin: auto; }

事例源碼:https://codepen.io/shadeed/pen/b086f8402be981e871ac5db15495dec8?editors=0100

Flexbox

在某些情況下,在flexbox中使用自動頁邊距非常有用。當一個子項目有一個marginauto 時,它將被推到遠的另一邊。例如,如果一個flex項目的左邊是margin-left: auto,那么它將被推到最右邊。

考慮下面的模型,父級元素是一個 flex 布局:

值得了解的關于CSS auto的相關知識!!

我們想把第二項推到最右邊,自動邊距就派上用場了。

CSS

.wrapper {     display: flex; }  .item-2 {     margin-left: auto; }

值得了解的關于CSS auto的相關知識?。?/></p>
<p>不僅如此,它還可以在水平或垂直方向工作。參見下面的示例</p>
<p>CSS</p>
<pre>.item-2 {     margin-top: auto; }</pre>
<p><img src=

另外,如果只有一個子元素,則可以使用margin:auto將其水平和垂直居中。

CSS

.item-1 {     margin: auto; }

值得了解的關于CSS auto的相關知識??!

flex 屬性和 auto 關鍵字

在flexbox中,我們可以使用flex: auto作為子項目。這是什么意思?當一個子項目有flex: auto時,它等價于flex: 11 auto,與下面等價:

CSS

.item {   flex-grow: 1;   flex-shrink: 1;   flex-basis: auto; }

MDN 描述

該項目根據其寬度和高度屬性調整大小,但會增長以吸收flex容器中的任何額外自由空間,并會收縮到其最小尺寸以適合該容器,這等效于設置“ flex:1 1 auto”。

具有flex:auto的項目將根據其寬度和高度來調整大小,但它可以根據可用的額外空間來增大或縮小。 在研究本文之前,我不知道這一點!

HTML

<div class="wrapper">   <div class="item item-1">Item</div>   <div class="item">Item</div>   <div class="item">Item</div> </div>

CSS

.wrapper {     display: flex;     flex-wrap: wrap; }  .item {     width: 120px;     height: 500px; }  .item-1 {     flex: auto; }

值得了解的關于CSS auto的相關知識??!

事例源碼:https://codepen.io/shadeed/pen/4914b4517b858f0fcf0f8acd07c64b1e?editors=1100

CSS grid 和自動設置一個 auto

值得了解的關于CSS auto的相關知識?。?/></p>
<p>在CSS Grid中,我們可以設置一個列為<code>auto</code>,這意味著它的寬度將基于它的內容長度。看看下面,你就知道我的意思了:</p>
<pre>wrapper {     display: grid;     grid-template-columns: auto 1fr 1fr; }</pre>
<p><strong>grid 和 auto 邊距</strong></p>
<p>使用CSS網格時,可以使用自動頁邊距實現類似于 flexbox 的結果。 當我們有一個網格,并且其中的網格項目具有<code>margin-left: auto</code>時:該項目將被推到右邊,其寬度將基于其內容長度</p>
<p>考慮下面的例子:</p>
<p><img src=

從右向左布局

值得一提的是,使用margin-left: automargin-right: auto對于從左到右的布局(例如英語)可能效果很好。 但是,在多語言網站上工作時要當心顛覆這些價值觀。 更好的是,使用flexboxgrid屬性,以防使用它們完成工作。 如果沒有,那么請使用自動頁邊距作為最后的選擇,而應使用CSS邏輯屬性。

overflow 屬性

當我們有一個元素時,我們應該考慮它應該包含的最小和最大內容。如果內容超過了最大值,那么我們需要顯示一個滾動條。

你可能想使用以下內容:

element {   overflow-y: scroll; }

然而,這可能會顯示一個滾動條,即使內容高度很短。參見下面的示例

值得了解的關于CSS auto的相關知識!!

在 Chrome 窗口中,滾動條總是顯示出來,這是不正確和令人困惑的行為。

通過使用auto關鍵字,我們可以確保滾動條不會顯示,除非內容高度大于它的容器。

根據MDN:

取決于用戶代理。 如果內容適合填充框內部,則它看起來與可見內容相同,但仍會建立新的塊格式化上下文。 如果內容溢出,桌面瀏覽器會提供滾動條。

.element {   overflow-y: auto; }

position 屬性

對于CSS定位屬性top,right,bottom和left,我們可以使用auto關鍵字作為它們的值。 接下來我要解釋的是對我來說是新的,我在研究本文時學到了它。

考慮下面的模型:

值得了解的關于CSS auto的相關知識!!

我們有一個有內邊距的 wrapper 元素,還有一個子項。子項目是絕對定位的,但沒有任何定位屬性。

.wrapper {     position: relative;     padding: 16px; }  .item {     position: absolute;     width: 100px;     height: 100px; }

在CSS中,每個屬性都有一個初始值/默認值。 如果我檢查了子項并轉到computed styles,你猜下left屬性的值會是什么?

值得了解的關于CSS auto的相關知識!!

left的默認值為16px,即使沒有設置。為什么會發(fā)生這種情況? 好吧,原因是絕對定位的元素相對于其最接近的父元素具有position:relative。 該父項具有padding: 16px,因此子項位于頂部和左側的16px處。 有趣,不是嗎?

現在,你可能會問,這樣做有什么好處?好吧,讓我繼續(xù)。

假設子項必須在較小的視口中位于距左側100像素的位置,對于桌面,它應恢復為默認位置。

.wrapper {     position: relative; }  .item {     position: absolute;     left: 100px;     width: 100px;     height: 100px; }

如何在較大的視口中重設left? 我們不能使用left:0,因為這會將子元素粘到邊緣,這不是我們想要的。 請參閱下面的模型,以了解我的意思。

值得了解的關于CSS auto的相關知識!!

要以正確的方式重置子項,我們應該使用left: auto。 根據 MDN:

如果元素是靜態(tài)元素,則將定位在它應該水平定位的位置

這意味著,它會尊重padding,而不會將子條目粘貼到其父條目的邊緣。

.item {     position: absolute;     left: 100px;     width: 100px;     height: 100px; }  @media (min-width: 800px) {     .item {         /* This is equivalent to left: 16px */         left: auto;     } }

top屬性也是如此。 對于rightbottom屬性,其默認計算值分別等于元素的寬度和高度。

事例源碼:https://codepen.io/shadeed/pen/d062539938346e5458f769cbc08833e1?editors=0100

用例和示例

值得一提的是,下面的用例可能還不夠,但是我嘗試添加一些用例,希望它們對你們有用。

提示箭頭

對于提示框,我們需要一個指向箭頭,以使其對用戶更加清晰。 如果我們正在設計系統(tǒng)上,則應該考慮多個狀態(tài)。 例如,提示的箭頭指向左側,另一個箭頭指向右側。

值得了解的關于CSS auto的相關知識??!

.tooltip:before {     /* 箭頭代碼 */     position: absolute;     left: -15px; }  /* 這是一個箭頭指向右側的版本*/ .tooltip.to-right:before {     /* 箭頭代碼 */     position: absolute;     left: auto;     right: -15px; }

請注意,在初始實現中,我使用left: auto來覆蓋left: -15px。 供您參考,這是非常常用的,我建議改用以下內容:

.tooltip:before {     position: absolute;     right: 100%; }  .tooltip.to-right:before {     /* Arrow code */     position: absolute;     right: auto;     left: 100%; }

通過使用100%,我們避免了使用硬編碼的值(箭頭寬度),如果我們改變箭頭的大小,這個值可能會失敗。這是一個更經得起時間考驗的解決方案。

卡片組件

你可能有一個card組件,其左上角有一個操作,它可能僅用于裝飾,也可能是一個有用的操作。不管是什么,你都應該考慮到它是雙向的。

值得了解的關于CSS auto的相關知識??!

通過使用left:auto,我們可以很容易地重置它的基本實現。

.card .icon {     position: absolute;     left: 15px;     top: 15px; }  .card.is-right .icon {     left: auto;     right: 15px; }

Flexbox 和 自動邊距

當談到flexbox時,它有無限的可能性。 通過將其與自動邊距相結合,我們可以構建功能強大的布局。

考慮下面的例子

值得了解的關于CSS auto的相關知識!!

我們在右側包含一行標題,描述和一個操作按鈕的行。 我們希望操作按鈕貼在右側。

HTML

<div class="item">     <div class="item-group">         <!-- Title and description -->     </div>     <button class="item__action">Confirm</button> </div>

CSS

.item {   display: flex;   flex-wrap: wrap;   justify-content: space-between; }  .item__action {   margin-left: auto; }

就是這樣! 通過使用margin-left: auto,將動作推到最右角。 更好的是,如果您要構建多語言網站,我們可以使用CSS邏輯屬性。 CSS將如下所示:

.item__action {     margin-inline-start: auto; }

CSS grid 和自動邊距

在向網格項目添加邊距時,它可以是固定值,百分比或自動值。 我對auto更感興趣。 考慮以下:

值得了解的關于CSS auto的相關知識??!

HTML

<p class="input-group">     <label for="">Full Name</label>     <input type="email" name="" id=""> </p>

CSS

.input-group {   display: grid;   grid-template-columns: 1fr;   grid-gap: 1rem;    @media (min-width: 700px) {     grid-template-columns: 0.7fr 2fr;   } }

我想將label 與input的左邊緣對齊。 為此,我需要應用以下內容:

.input-group label {     margin-left: auto; }

值得了解的關于CSS auto的相關知識!!

模態(tài)設計

值得了解的關于CSS auto的相關知識!!

在進行模態(tài)設計時,重要的是要考慮內容高度很大時會發(fā)生的情況。 對于這種情況,我們可以使用以下代碼:

.modal-body {     overflow-y: auto; }

這樣,只有當內容高度足夠大時,它才會顯示滾動條。

英文原文地址:https://css-tricks.com/almanac/properties/o/overflow/

作者:shadeed

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲深夜视频| 亚洲国产欧美日本视频| 国产一区清纯| 欧美精品一区二区三区精品| 久久精品青草| 久久久精品午夜少妇| 日本韩国欧美超级黄在线观看| 精品一区视频| 国产精品久久久久久久久免费高清| 日本中文字幕一区二区视频 | 亚洲欧美日本日韩| 日本不卡一二三区黄网| 国产乱子精品一区二区在线观看 | 鲁大师成人一区二区三区| 中文视频一区| 国产精品任我爽爆在线播放| 精品一区二区三区视频在线播放| 日韩欧美二区| 欧美专区18| 日本不卡高清视频| 国产成人a视频高清在线观看| 亚洲高清成人| 欧美日韩18| 久久久久久久久99精品大| 久久高清国产| 成人亚洲一区| 日本亚洲最大的色成网站www | 日产精品一区二区| 成人羞羞在线观看网站| 亚洲视频二区| 国产极品一区| 国产精品一区二区免费福利视频| 亚洲精品护士| 国产精品亲子伦av一区二区三区| 国产日产精品_国产精品毛片| 国产精品一区亚洲| 国产精品videossex久久发布| 精品资源在线| 欧美一级精品| 最新国产精品| 精品入口麻豆88视频| 91免费精品| 麻豆精品新av中文字幕| 久久久国产亚洲精品| 久久亚洲图片| 国产精品片aa在线观看| 国产成人黄色| 亚洲成av在线| 国产亚洲一级| 99在线|亚洲一区二区| 日韩欧美1区| 精品中国亚洲| 国产一区二区视频在线看| 日本不卡中文字幕| 免费久久精品视频| 石原莉奈一区二区三区在线观看| 天堂av在线| 精品亚洲成人| 国产精品传媒麻豆hd| 欧美亚洲一级| 久久狠狠亚洲综合| 国产精品综合| 日韩一区精品字幕| 天堂成人免费av电影一区| 欧美sss在线视频| 男人的天堂久久精品| 欧美午夜不卡| 蜜臀av免费一区二区三区| 色综合www| 久久久噜噜噜| 久久久久国产精品一区二区| 日韩免费视频| 91精品国产成人观看| 在线一区av| 999久久久亚洲| 好吊视频一区二区三区四区| 精品91久久久久| 美女久久久久| 在线精品亚洲| 国产欧美日韩综合一区在线播放| 国产午夜久久av| 精品视频网站| 激情综合网站| 日本三级亚洲精品| 久久中文字幕一区二区三区| 久久不卡日韩美女| 日韩三区在线| 亚洲ww精品| 国产一区二区三区黄网站 | 最近国产精品视频| 亚洲少妇在线| 国产九一精品| 激情久久久久久久| 国产欧美丝祙| 好看的亚洲午夜视频在线| 欧美gv在线| re久久精品视频| 精品久久精品| 亚洲欧洲国产精品一区| 99久久99久久精品国产片果冰| 欧美激情 亚洲a∨综合| 亚洲欧美日韩视频二区| 日韩88av| 国产一区二区三区不卡视频网站| 日韩精品国产精品| 99精品美女| 国产精品亲子伦av一区二区三区| 久久香蕉精品| 免费不卡中文字幕在线| 欧美xxxx中国| 成人国产精品久久| 欧美天堂在线| 日韩三区四区| 日本aⅴ免费视频一区二区三区| 亚洲欧美日韩专区| 99视频精品视频高清免费| 欧美久久天堂| 日韩精品一卡| 激情婷婷综合| 亚洲神马久久| 国产韩日影视精品| 日韩精品中文字幕吗一区二区| 日本大胆欧美人术艺术动态| 手机精品视频在线观看| 激情久久五月| 免费看的黄色欧美网站| 在线日韩成人| 欧美日韩中文| 国产精品久久久久久久免费软件| 国产一区二区三区视频在线| 久久久777| 国产精品外国| 日本中文字幕视频一区| 欧美日韩亚洲一区二区三区在线| 热久久久久久| 欧美中文一区| 精品网站999| 欧美亚洲激情| 91精品在线免费视频| 国产成人1区| 丝袜诱惑制服诱惑色一区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 中文在线а√天堂| 99精品国产一区二区三区| 蜜臀久久久久久久| 久久爱www成人| 成人看片网站| 欧美日本久久| 精品午夜视频| 亚洲免费观看| 国产精品欧美在线观看| 亚洲手机视频| 国产精品调教| 日韩在线播放一区二区| 久久精品福利| 日韩动漫一区| 免费观看不卡av| 国产精品亲子伦av一区二区三区 | 欧美亚洲三区| 国产精品久久久久蜜臀| 免费日韩一区二区| 亚洲成av人片一区二区密柚| 亚洲精品日韩久久| 日本久久成人网| 日韩免费看片| 波多野结衣久久精品| 日韩精品专区| 亚洲成人不卡| 99久久精品费精品国产| 91嫩草亚洲精品| 亚洲综合在线电影| 日本国产精品| 激情欧美丁香| 视频一区在线播放| 亚洲激情婷婷| 国产偷自视频区视频一区二区| 在线日韩一区| 久久福利精品| 国产精品一区二区三区美女| 国产精品午夜一区二区三区| 国产一区丝袜| 99久久久久国产精品| 成人国产精选| 精品久久视频| 综合日韩av| 在线人成日本视频| 岛国av免费在线观看| 久久精品国产亚洲aⅴ| 精品资源在线| 欧美激情日韩| 国产日产精品_国产精品毛片| 欧美日韩一区自拍| 牛牛精品成人免费视频| 欧美激情视频一区二区三区免费| 国产一区三区在线播放| 色综合www| 亚洲1区在线观看| 欧美一级久久| 高清精品久久| 午夜精品一区二区三区国产|