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

溫馨提示×

溫馨提示×

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

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

hover生成border造成的元素移動如何解決

發布時間:2021-06-06 14:40:15 來源:億速云 閱讀:346 作者:Leah 欄目:web開發

hover生成border造成的元素移動如何解決?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

前言

我們有時候會遇到 hover 偽類給元素添加邊框的時候,元素中的內容發生位移,雖然我們設置了 box-sizing: border-box 并且規定了元素的寬高,但是內容依然被邊框擠開了。如下面這種情況:

<style type="text/css" media="screen">
    .test {
        height: 30vmin;
        width: 30vmin;
        background: lightblue;
        box-sizing: border-box;
    }
    .test:hover {
        border: 5px solid black;
    }
</style>
<div class="test">
    this is a div.
</div>

hover生成border造成的元素移動如何解決

這里的原因很明顯,我們的元素大小并沒有變(如果沒有設置元素寬高或者 box-sizing: border-box 則元素大小會改變), box-sizing: border-box 是生效的,但是元素中的內容因為突然添加的邊框而被擠開了,我們的盒模型從外到內依次是 marginborderpaddingcontent ,所以新加入的 border 必然將 content 壓縮的更小,并且 content 的邊界坐標也變了,因為導致視覺上的內容移動。所以解決問題的辦法就是讓邊框的添加不影響 content 的位置。

為元素添加邊框

貿然出現的邊框改變了原有的布局,讓內容移動了,既然如此,我們可以在之前的布局中就讓邊框存在就可以了。

.test {
    height: 30vmin;
    width: 30vmin;
    background: lightblue;
    border: 5px solid transparent;
    box-sizing: border-box;
}
.test:hover {
    border: 5px solid black;
}

使用 box-shadow

使用不占用盒模型空間的 box-shadow 或者 outline 也是一種選擇,

.test:hover {
    /* border: 5px solid black; */
    box-shadow: 0 0 0 5px black;
    outline: 5px solid black;
}

用 padding

我們可以通過改變 padding 大小來給 border 預留空間。

.test {
    height: 30vmin;
    width: 30vmin;
    background: lightblue;
    box-sizing: border-box;
    padding: 5px;
}
.test:hover {
    padding: 0;
    border: 5px solid black;
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

凌源市| 巧家县| 合阳县| 垣曲县| 克什克腾旗| 朝阳市| 天柱县| 吉林省| 遂宁市| 资讯| 南华县| 桦川县| 汉源县| 徐水县| 临朐县| 五大连池市| 永善县| 班戈县| 陕西省| 木里| 阿尔山市| 盘山县| 祁连县| 福海县| 托里县| 炎陵县| 云梦县| 厦门市| 涿州市| 屏东市| 宁津县| 姜堰市| 乐亭县| 永福县| 进贤县| 南昌市| 米泉市| 牙克石市| 纳雍县| 乌拉特后旗| 彭水|