<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                > 原文出處:http://www.w3cplus.com/css3/css-secrets/inner-rounding.html ## 問題 有些時候,我們只希望容器的內部邊框是圓角的,但是外部輪廓線要是矩形的,如下圖所示: ![內凹圓角](https://box.kancloud.cn/2015-10-01_560cdc0d7e385.png "內凹圓角") *圖1注:一個具有輪廓線的容器,而它的圓角只在容器的內部* 目前,這個有趣的設計用得還不是很多。使用兩個元素實現這種效果就太平庸了: ~~~ <div class="something-meaningful"><div> I have a nice subtle inner rounding, don’t I look pretty? </div></div> .something-meaningful { background: #655; padding: .8em; } .something-meaningful > div { background: tan; border-radius: .8em; padding: 1em; } ~~~ 這么做的效果還不錯,但會強迫我們使用兩層標簽,而實際上我們只需要一層。那么是否有方法只使用一層就實現這種效果呢? ## 解決方案 之前使用兩層標簽的解決方案很靈活,可以讓我們充分利用?`background`?的特性。比如,我們希望邊框不只是純色的,也有可能是帶有噪點的紋理,那么使用上面的方法很簡單就可以做到。不過,當我們的邊框只是純色時,有一種方法可以只使用一層元素實現相同的效果,下面就是代碼: ~~~ background: tan; border-radius: .8em; padding: 1em; box-shadow: 0 0 0 .6em #655; outline: .6em solid #655; ~~~ 你能猜到這段代碼的效果嗎?它所表現的效果: ![內凹圓角](https://box.kancloud.cn/2015-10-01_560cdc0dbd545.png "內凹圓角") *圖2注:為一個圓角元素添加輪廓線* 在這里我們將會充分利用?`outline`?不受元素的圓角影響,而元素的陰影受圓角影響的特性來完成這一效果。因此,如果我們將`outline`?置于圖層頂部,那么?`box-shadow`?就會彌補?`outline`?在角落上的空隙: ![內凹圓角](https://box.kancloud.cn/2015-10-01_560cdc0de8d12.png "內凹圓角") *圖3注:使用?`box-shadow`?屬性包圍圓角,并且不設置任何偏移和模糊效果* 所以組合使用它們就可以實現最終的效果。下圖中的陰影和?`outline`?被設置成了不同的顏色,這是為了讓大家看的更明白。 ![內凹圓角](https://box.kancloud.cn/2015-10-01_560cdc0e2f4ad.png "內凹圓角") *圖4注:這里的輪廓線之所以使用黑色,陰影之所以使用洋紅色,是為了讓大家看清其中的原理;值得注意的是輪廓線在所有圖層的最上方* 注意,我們無需讓陰影的范圍等于?`outline`?的寬度,只需讓陰影足以覆蓋間隙即可。實際上,如果讓?`outline`?的寬度和陰影的范圍相同,在某些瀏覽器中會發生一些渲染問題,所以我建議使用比?`outline`?稍小一些的陰影。這也提出了新的問題:彌補間隙的最小陰影應該是多少? 為了回答這個問題,我們需要使用學校里學到的勾股定理來計算直角三角形的各邊變長。勾股定理指出,最長邊等于其他兩邊的平方和,由此可知,如果這兩條邊都等于?`a`,那么最長邊就等于![](https://box.kancloud.cn/2015-10-01_560cdc136b7d0.png)。 你可能會驚訝中學學到的理論竟然和我們的內部圓角效果相關,那么你可以查看一下圖: ![內凹圓角](https://box.kancloud.cn/2015-10-01_560cdc13ac456.png "內凹圓角") *圖5注:如果邊框半徑是`r`,那么圓心到羅廓線邊角的最長距離就是![](https://box.kancloud.cn/2015-10-01_560cdc13e7476.png),這意味著陰影最小的擴散范圍應該是![](https://box.kancloud.cn/2015-10-01_560cdc142b063.png)。* 它很好地解釋了勾股定理是如何應用到這里的。在我們的這個示例中,`border-radius`?是?`.8em`,所以最小的陰影范圍是![](https://box.kancloud.cn/2015-10-01_560cdc149ee8f.png)。在這里我們只需要將它約取為?`.34em`?的陰影范圍。為了避免重復計算,你可以直接取圓角半徑的一半,這樣就已經足夠用了![](https://box.kancloud.cn/2015-10-01_560cdc14bb5ba.png)。 請注意,這種計算方法并不是沒有限制的:對于這里要實現的效果,我們陰影半徑必須比?`outline`?的寬度要小,同時還要大于![](https://box.kancloud.cn/2015-10-01_560cdc14e3e84.png)(這里的?`r`?表示?`border-radius`)。這意味著如果?`outline`?的寬度小于![](https://box.kancloud.cn/2015-10-01_560cdc14e3e84.png)那么我們就無法實現實現這種效果了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看