中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

css怎么為元素添加邊框

發布時間:2021-08-10 17:11:31 來源:億速云 閱讀:151 作者:chen 欄目:web開發

這篇文章主要講解了“css怎么為元素添加邊框”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“css怎么為元素添加邊框”吧!

在本文中,我將介紹以下兩者之間的區別:

  • border

  • outline

  • box-shadow

我們還將討論您何時可以使用另一種方法。

CSS Box模型復習

這三種邊框方法之間的一個關鍵區別是它們放置在元素的位置以及它們如何影響元素的維度,這種行為是由CSS box模型控制的。

css怎么為元素添加邊框

border 正是元素的邊界,位于其padding和margin之間,它的寬度將影響計算出的元素尺寸。

outline 在邊框旁邊但在邊框之外,與 box-shadow 和 margin 重疊,但不影響元素的尺寸。

默認情況下,box-shadow 從邊框的邊緣向外延伸,覆蓋定義方向的空間量,也不會影響元素的尺寸。

border 語法和用法

自網絡誕生之初,邊框就已經成為設計的標準。

與我們將要介紹的其他兩種方法相比,一個重要的區別是,默認情況下,border 包含在元素的計算尺寸中。即使您設置  box-sizing:border-box,border 仍然會計入計算中。

Border 最基本的語法定義了邊框的寬度和樣式:

border: 3px solid;

如果未定義則默認顏色為 currentColor,這意味著它將在級聯中使用最接近的顏色定義。

但 border 有更多的樣式可供選擇,如果你愿意,使用 border-style 你可以為每一面定義不同的樣式。

何時使用 border?

當元素的尺寸允許樣式計算時,border 是一個可靠的選擇(雙關語),默認樣式給了設計很大的靈活性。

outline 語法和用法

對于outline,使其可見的唯一必需屬性是提供一種樣式,因為默認值為 none:

outline: solid;

和border一樣,它將通過 currentColor 獲得顏色,它的默認寬度為 medium。

outline 的典型應用是通過本機瀏覽器樣式對 :focus 元素(如鏈接和按鈕)進行聚焦。

除非您能夠提供符合WCAG Success Criterion 2.4.7 Focus Visible的自定義 :focus  樣式,否則應該允許發生這種特定的應用,以達到無障礙的目的。

出于設計目的,通常要注意的 outline 問題是它無法從任何 border-radius 樣式繼承曲線。

何時使用 outline?

當您不想影響元素的尺寸并且不需要其遵循 border-radius 時,可以使用outline線。

box-shadow 語法和用法

box-shadow 的最低要求屬性是 x 和 y 軸的值以及顏色:

box-shadow: 5px 8px black;

可以選擇添加第三個參數 blur 來制造模糊,第四個參數 spread 來添加模糊擴散程度。

要使用它來創建邊框,我們將 x 軸和 y 軸的值以及 blur 都設置為 0 ,然后為spread設置一個正數。

box-shadow: 0 0 0 3px blue;

這將在元素周圍創建邊框的外觀,甚至可以遵循所應用的 border-radius:

css怎么為元素添加邊框

何時使用box-shadow?

您可能更喜歡 box-shadow,特別是當您想為邊框設置動畫而不引起布局偏移時。下一節將演示這種情況的示例。

而且由于 box-shadow可以分層,所以它是一個全能的好工具,要了解它來增強你的布局。

但是,它將無法完全模仿 border 和 outline 提供的某些樣式。

放在一起

以下是一些可能需要使用 border 替代的實際情況。

按鈕邊框

當為有邊框和無邊框的按鈕提供樣式時,真實的 border 成為一個常見的問題,以及它們排列在一起的場景。

css怎么為元素添加邊框

典型的解決方案通常是將無邊框按鈕的尺寸增加到等于 border-width 的大小

利用我們的新知識,另一種解決方案是使用 box-shadow 與 inset 關鍵字一起,將偽邊框視覺上置于按鈕內。

css怎么為元素添加邊框

請注意,你的 padding 必須大于 border-width,以防止文本內容的重疊。

另外,也許您想在 :hover 或 :focus 上添加邊框。

使用真實的邊框,你會從布局轉變中產生不理想的視覺跳躍,因為邊框會短暫地增加這些狀態下的尺寸。

css怎么為元素添加邊框

在這種情況下,我們可以使用 box-shadow 來創建偽邊框,這樣就不會增加真實的尺寸,另外我們還可以使用 transition  對其進行動畫處理。

css怎么為元素添加邊框

這是上述示例的簡化代碼:

button {   transition: box-shadow 180ms ease-in; }  button:hover {   box-shadow: 0 0 0 3px tomato; }

確保可見焦點

對于可訪問性,您可能不知道的一種情況是Windows高對比度模式(WHCM)的用戶。

在這種模式下,你提供的顏色會被剝離成一個縮小的高對比度調色板,并非所有CSS屬性都是允許的,包括 box-shadow。

一個實際的影響是,如果你在 :focus 時去掉了 outline,而用 box-shadow 代替,WHCM的用戶將不再獲得可見的焦點。

要消除這種負面影響,您可以在 :focus 上應用透明的 outline:

button:focus {   outline: 2px solid transparent; }

outline和box-shadow的陷阱

因為outline和box-shadow位于盒模型的邊框之外,你可能會遇到的一個后果是讓它們在視口的邊緣下消失。所以,如果你想讓元素保持可見,你可能需要給元素添加  margin 或者給正文添加 padding 作為對策。

它們的位置也意味著它們可以被 overflow: hidden 或使用 clip-path 等屬性剪掉。

額外提示:漸變邊框

正如承諾的那樣,這里有一個額外的提示——在我們已經討論過的方法中——只有 border 可以做到。

一個經常被遺忘的 border 相關屬性是 border-image,當試圖將它用于實際的圖像時,其語法可能有點奇怪。

但是它具有隱藏的功能——由于CSS漸變在技術上是圖像,因此它還可以創建漸變邊框:

css怎么為元素添加邊框

這需要定義一個規則的邊框寬度和樣式(盡管它只顯示為實體,而不考慮樣式值),然后是 border-image  屬性,它可以使用一個添加的漸變語法。在漸變之后的數字是 slice 值,對于我們的漸變,我們可以簡單地使用 1 來基本不改變漸變的大小/失真。

div {   border: 10px solid;   /* simplified from preview image */   border-image: linear-gradient(to right, purple, pink) 1; }

如果只把邊框放在一邊,一定要先把其他邊框設置為零,否則有些瀏覽器還是會把邊框加到所有邊框上。

div {   border-style: solid;   border-width: 0;   border-left-width: 3px;   /* border-image */ }

不利之處在于這些邊界不遵守 border-radius。

感謝各位的閱讀,以上就是“css怎么為元素添加邊框”的內容了,經過本文的學習后,相信大家對css怎么為元素添加邊框這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

彰化县| 玉环县| 久治县| 鄂温| 佛教| 内江市| 钟祥市| 肇州县| 博野县| 资兴市| 基隆市| 惠州市| 高尔夫| 连云港市| 富蕴县| 西华县| 道孚县| 桐庐县| 宜宾市| 长治市| 敦化市| 拜城县| 台北县| 河曲县| 龙海市| 通辽市| 布尔津县| 馆陶县| 行唐县| 黎平县| 英德市| 寿阳县| 商城县| 平定县| 确山县| 灵丘县| 福安市| 黄平县| 柞水县| 廊坊市| 当涂县|