碰到的一些问题
在学习前端的过程中遇到了一些问题,把它们都记录了下来,会持续更新的…
超链接访问过后hover样式就不出现的问题
被点击访问过的超链接样式不在具有hover和active了,很多人应该都遇到过这个问题,解决方法是改变CSS属性的排列顺序:
a:link {} 未被访问过的链接
a:visited {} 已经被访问过的链接
a:hover {} 鼠标指针悬停于其上的元素
a:active {} 被激活的元素,如被点击的链接、被按下的按钮
padding会改变盒子高度的问题
在设置了一个div盒子的高度和宽度之后,如果给这个盒子添加padding属性后,会发现这个盒子的高度和宽度会发生变化。这主要是因为盒子的两种计算模式的差异。
标准模式解析计算,也是默认模式
盒子总宽度(高度) = 内容区宽度(高度)+padding+border + margin
// 注: 这里的内容宽度与高度,就是在CSS中指定的宽度与高度,所以如果设置了margin或padding总的尺寸会发现变化
怪异模式解析计算
即盒子总宽度(高度) = width/height + margin =内容区宽度(高度)+padding+border + margin
// 注: 这里的第一个等号后的width/height即指的就是CSS中设置的值。它就相当于内容宽高+padding+border
以上,是浏览器默认会解析的情况。有时,在写页面中,我们想让它按照我们的想法来进行对应模式的计算。
这里,就推荐大家使用box-sizing属性:
box-sizing属性:
当box-sizing:content-box : 将采用标准模式解析计算
当box-sizing:border-box: 将采用怪异模式解析计算
在默认情况下,设置div盒子的宽度和高度,其实相当于设置的里面的内容区的宽度和高度,所以当给盒子添加了padding属性后,就会发生将盒子高度或者宽度撑大的情况。如果想让css里面设置的宽度和高度变成盒子真正的宽度和高度的话,就需要设置box-sizing:border-box属性。