這篇文章主要講解了“css怎么為元素添加邊框”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“css怎么為元素添加邊框”吧!
創(chuàng)新互聯(lián)是專業(yè)的溫宿網(wǎng)站建設(shè)公司,溫宿接單;提供網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行溫宿網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
在本文中,我將介紹以下兩者之間的區(qū)別:
border
outline
box-shadow
我們還將討論您何時(shí)可以使用另一種方法。
這三種邊框方法之間的一個(gè)關(guān)鍵區(qū)別是它們放置在元素的位置以及它們?nèi)绾斡绊懺氐木S度,這種行為是由CSS box模型控制的。
border 正是元素的邊界,位于其padding和margin之間,它的寬度將影響計(jì)算出的元素尺寸。
outline 在邊框旁邊但在邊框之外,與 box-shadow 和 margin 重疊,但不影響元素的尺寸。
默認(rèn)情況下,box-shadow 從邊框的邊緣向外延伸,覆蓋定義方向的空間量,也不會(huì)影響元素的尺寸。
自網(wǎng)絡(luò)誕生之初,邊框就已經(jīng)成為設(shè)計(jì)的標(biāo)準(zhǔn)。
與我們將要介紹的其他兩種方法相比,一個(gè)重要的區(qū)別是,默認(rèn)情況下,border 包含在元素的計(jì)算尺寸中。即使您設(shè)置 box-sizing:border-box,border 仍然會(huì)計(jì)入計(jì)算中。
Border 最基本的語(yǔ)法定義了邊框的寬度和樣式:
border: 3px solid;
如果未定義則默認(rèn)顏色為 currentColor,這意味著它將在級(jí)聯(lián)中使用最接近的顏色定義。
但 border 有更多的樣式可供選擇,如果你愿意,使用 border-style 你可以為每一面定義不同的樣式。
何時(shí)使用 border?
當(dāng)元素的尺寸允許樣式計(jì)算時(shí),border 是一個(gè)可靠的選擇(雙關(guān)語(yǔ)),默認(rèn)樣式給了設(shè)計(jì)很大的靈活性。
對(duì)于outline,使其可見(jiàn)的唯一必需屬性是提供一種樣式,因?yàn)槟J(rèn)值為 none:
outline: solid;
和border一樣,它將通過(guò) currentColor 獲得顏色,它的默認(rèn)寬度為 medium。
outline 的典型應(yīng)用是通過(guò)本機(jī)瀏覽器樣式對(duì) :focus 元素(如鏈接和按鈕)進(jìn)行聚焦。
除非您能夠提供符合WCAG Success Criterion 2.4.7 Focus Visible的自定義 :focus 樣式,否則應(yīng)該允許發(fā)生這種特定的應(yīng)用,以達(dá)到無(wú)障礙的目的。
出于設(shè)計(jì)目的,通常要注意的 outline 問(wèn)題是它無(wú)法從任何 border-radius 樣式繼承曲線。
何時(shí)使用 outline?
當(dāng)您不想影響元素的尺寸并且不需要其遵循 border-radius 時(shí),可以使用outline線。
box-shadow 的最低要求屬性是 x 和 y 軸的值以及顏色:
box-shadow: 5px 8px black;
可以選擇添加第三個(gè)參數(shù) blur 來(lái)制造模糊,第四個(gè)參數(shù) spread 來(lái)添加模糊擴(kuò)散程度。
要使用它來(lái)創(chuàng)建邊框,我們將 x 軸和 y 軸的值以及 blur 都設(shè)置為 0 ,然后為spread設(shè)置一個(gè)正數(shù)。
box-shadow: 0 0 0 3px blue;
這將在元素周圍創(chuàng)建邊框的外觀,甚至可以遵循所應(yīng)用的 border-radius:
何時(shí)使用box-shadow?
您可能更喜歡 box-shadow,特別是當(dāng)您想為邊框設(shè)置動(dòng)畫而不引起布局偏移時(shí)。下一節(jié)將演示這種情況的示例。
而且由于 box-shadow可以分層,所以它是一個(gè)全能的好工具,要了解它來(lái)增強(qiáng)你的布局。
但是,它將無(wú)法完全模仿 border 和 outline 提供的某些樣式。
以下是一些可能需要使用 border 替代的實(shí)際情況。
當(dāng)為有邊框和無(wú)邊框的按鈕提供樣式時(shí),真實(shí)的 border 成為一個(gè)常見(jiàn)的問(wèn)題,以及它們排列在一起的場(chǎng)景。
典型的解決方案通常是將無(wú)邊框按鈕的尺寸增加到等于 border-width 的大小
利用我們的新知識(shí),另一種解決方案是使用 box-shadow 與 inset 關(guān)鍵字一起,將偽邊框視覺(jué)上置于按鈕內(nèi)。
請(qǐng)注意,你的 padding 必須大于 border-width,以防止文本內(nèi)容的重疊。
另外,也許您想在 :hover 或 :focus 上添加邊框。
使用真實(shí)的邊框,你會(huì)從布局轉(zhuǎn)變中產(chǎn)生不理想的視覺(jué)跳躍,因?yàn)檫吙驎?huì)短暫地增加這些狀態(tài)下的尺寸。
在這種情況下,我們可以使用 box-shadow 來(lái)創(chuàng)建偽邊框,這樣就不會(huì)增加真實(shí)的尺寸,另外我們還可以使用 transition 對(duì)其進(jìn)行動(dòng)畫處理。
這是上述示例的簡(jiǎn)化代碼:
button { transition: box-shadow 180ms ease-in; } button:hover { box-shadow: 0 0 0 3px tomato; }
對(duì)于可訪問(wèn)性,您可能不知道的一種情況是Windows高對(duì)比度模式(WHCM)的用戶。
在這種模式下,你提供的顏色會(huì)被剝離成一個(gè)縮小的高對(duì)比度調(diào)色板,并非所有CSS屬性都是允許的,包括 box-shadow。
一個(gè)實(shí)際的影響是,如果你在 :focus 時(shí)去掉了 outline,而用 box-shadow 代替,WHCM的用戶將不再獲得可見(jiàn)的焦點(diǎn)。
要消除這種負(fù)面影響,您可以在 :focus 上應(yīng)用透明的 outline:
button:focus { outline: 2px solid transparent; }
因?yàn)閛utline和box-shadow位于盒模型的邊框之外,你可能會(huì)遇到的一個(gè)后果是讓它們?cè)谝暱诘倪吘壪孪?。所以,如果你想讓元素保持可?jiàn),你可能需要給元素添加 margin 或者給正文添加 padding 作為對(duì)策。
它們的位置也意味著它們可以被 overflow: hidden 或使用 clip-path 等屬性剪掉。
正如承諾的那樣,這里有一個(gè)額外的提示——在我們已經(jīng)討論過(guò)的方法中——只有 border 可以做到。
一個(gè)經(jīng)常被遺忘的 border 相關(guān)屬性是 border-image,當(dāng)試圖將它用于實(shí)際的圖像時(shí),其語(yǔ)法可能有點(diǎn)奇怪。
但是它具有隱藏的功能——由于CSS漸變?cè)诩夹g(shù)上是圖像,因此它還可以創(chuàng)建漸變邊框:
這需要定義一個(gè)規(guī)則的邊框?qū)挾群蜆邮?盡管它只顯示為實(shí)體,而不考慮樣式值),然后是 border-image 屬性,它可以使用一個(gè)添加的漸變語(yǔ)法。在漸變之后的數(shù)字是 slice 值,對(duì)于我們的漸變,我們可以簡(jiǎn)單地使用 1 來(lái)基本不改變漸變的大小/失真。
div { border: 10px solid; /* simplified from preview image */ border-image: linear-gradient(to right, purple, pink) 1; }
如果只把邊框放在一邊,一定要先把其他邊框設(shè)置為零,否則有些瀏覽器還是會(huì)把邊框加到所有邊框上。
div { border-style: solid; border-width: 0; border-left-width: 3px; /* border-image */ }
不利之處在于這些邊界不遵守 border-radius。
感謝各位的閱讀,以上就是“css怎么為元素添加邊框”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)css怎么為元素添加邊框這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
本文題目:css怎么為元素添加邊框
URL標(biāo)題:http://aaarwkj.com/article20/peeico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、商城網(wǎng)站、企業(yè)網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站內(nèi)鏈、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)