网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

hover生成border造成的元素移动如何解决

hover生成border造成的元素移动如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联公司是一家专业从事成都做网站、成都网站建设、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!

前言

我们有时候会遇到 hover 伪类给元素添加边框的时候,元素中的内容发生位移,虽然我们设置了 box-sizing: border-box 并且规定了元素的宽高,但是内容依然被边框挤开了。如下面这种情况:


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


    this is a 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;
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


名称栏目:hover生成border造成的元素移动如何解决
URL标题:http://bjjierui.cn/article/popdos.html

其他资讯