前言

我们有时候会遇到 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.

这里的原因很明显,我们的元素大小并没有变(如果没有设置元素宽高或者 box-sizing: border-box 则元素大小会改变), box-sizing: border-box 是生效的,但是元素中的内容因为突然添加的边框而被挤开了,我们的盒模型从外到内依次是 margin , border , padding , content ,所以新加入的 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 插入html元素,解决hover生成border造成的元素移动方法相关推荐

  1. v-for 循环生成多个表单元素 给动态生成的表单元素绑定值并且添加校验规则

    需求:点击新增按钮 能不断生成下级部门,所以我再data中定义了一个变量 空数组 subordinateDepartmentNum:[] 默认值设置为[] 给增加按钮添加点击事件 每点击一次按钮  s ...

  2. 解决rspec 生成报告时报utf-8错误的方法

    找到gems\1.9.1\gems\rspec-core-2.14.3\lib\rspec\core\formatters\snippet_extractor.rb文件中的第27行: 在这边记录一下, ...

  3. 产生随机字符java_java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...

  4. 微信小程序中好看的按钮样式(渐变色)、view的点击变色效果、按钮漂亮的圆角边框、解决hover设置失效

    好看1: .wxss /* 从上往下渐变 */ .bt_1{margin-top: 40rpx;background: linear-gradient(#ccfbff, #ef96c5); } 好看2 ...

  5. Vue 之 解决v-html生成的元素不能触发@click等vue事件和CSS样式不生效的方法

    一.简介 官方文档: 通过上面官方文档的介绍我们可以得知两个重点: ① 通过v-html生成的页面元素,不会被当做Vue模板进行编译,只会作为普通的html代码被插入,也就是说通过v-html插入的h ...

  6. 动态处理表格多行合并单元格、同时解决hover错乱问题 - Vue Element Table

    简介: el-table单元格合并,处理hover错乱问题,自定义底部合计栏. 如图所示: 源码(复制另存txt,修改.html直接运行) <!DOCTYPE html> <html ...

  7. 关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存

    关于hibernate的关联外键生成以及外键属性列的正确插入即:解决外键插入时,在关联表中除了外键列为空,其它属性均正常级联保存 其实解决办法十分简单: 首先确保你能够级联保存数据,当然除了关联表的外 ...

  8. html标签a+hover事件,触发a标签hover事件,如何在元素底部显示蓝色底块_html/css_WEB-ITnose...

    回复讨论(解决方案) 你可以用li:hover border-bottom:3px solid blue; background-position:bottom; //是针对背景图片的位置,不是背景颜 ...

  9. css after支持ie8,CSS使用伪元素:before,:after生成内容及IE兼容问题

    1. CSS伪元素(pseudo-element)和伪类(pseudo-class) CSS2.1中的伪类有: :link  :visited :hover​ :focus :acvtive :fir ...

  10. gamit怎么利用glred生成测站时间序列_香侬读 | 按什么套路生成?基于插入和删除的序列生成方法

    "香侬读"是香侬科技(Shannon.AI)推出的栏目,每周解读NLP或前沿.或经典的论文,捕捉时下最新见解,探究未来发展趋向.欢迎大家广泛讨论.交流,也欢迎推荐优秀的文章与我们一 ...

最新文章

  1. CNN为何把地震和计划生育扯一起
  2. Pycharm安装和基本使用
  3. C++ ,leetcode 43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式
  4. Orchard:使用VS2010来生成一个地图Content Part
  5. linux命令详解:md5sum命令
  6. 51nod 1575 Gcd and Lcm
  7. 【渝粤教育】国家开放大学2019年春季 2507学前儿童艺术教育(音乐) 参考试题
  8. PAT 1009 说反话
  9. 在spring中使用JdbcTemplate进行数据库管理操作
  10. C#LeetCode刷题-多线程
  11. Python 使用pdfplumber 提取PDF页面表格的内容
  12. 帮中国修长城前,英特尔还用AI追踪北极熊、保护鲸鱼
  13. 2011-2017年中国各地政府BIM相关标准政策汇总
  14. 在校大学生研究生软著申请详解及模板下载
  15. 07.JavaScript弹窗——alert、prompt、confirm
  16. Ubuntu生成so共享库的方法
  17. Anchor Boxes
  18. 细雨算法升级,针对B2B领域低质内容
  19. 10 个提升效率的Linux小技巧
  20. 浏览器DNS解析过程

热门文章

  1. Java学习个人备忘录之文档注释
  2. zend studio结合xdebug、xdebug-help(chrome插件)调试PHP程序
  3. Entity Framework6使用SQL Server Compact免安装部署
  4. 【ubuntu操作系统入门】系统安装
  5. python 地理处理包:geopandas介绍
  6. icesat-2 数据产品
  7. numpy的sum函数、mean函数
  8. Doc命令行执行php中文乱码问题
  9. android实现Materia Design风格APP(二):部分Materia Design风格的控件介绍一
  10. c++输入、输出和文件