看看下面的代码,这是我遇到的一个更大问题的简化版本:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div {border-width:0px 5px; border-style:solid; border-color:black; width:400px; margin:0; padding:0; background:red;}
div:nth-child(2) {background:green;}
p {color:yellow; text-transform:uppercase; font-size:40px;margin:0;padding:0;}
</style>
</head>
<body>
<div><p>Hello World</p></div>
<div><p>Hello World</p></div>
</body>
</html>
它应该创建如下内容:
客户要求的是黑色左边框和黑色右边框与黄色文本的高度完全相同。也就是说,黑条的高度不应包括黄色文本的顶部+底部和容器顶部+底部之间的额外空间。
我能想到的一种方法是在包含的 div 上设置一个固定的高度,然后给 div 一个溢出:隐藏。接下来,我将在 p 标签上使用负边距顶部。
谁能想到更好的方法?我真的不喜欢我提到的这种方法,因为我的客户是一个设计纳粹,并且希望在所有不同的操作系统、不同的浏览器和不同的屏幕分辨率上都能做到像素完美。根据我的经验,如果我尝试通过将像素值硬编码到我的 CSS 中来定位元素,并且这些元素仍然需要与大小不同的元素相关(由于动态内容),那可能是一场噩梦。
我的担忧是否合理?如果是这样,是否有更好的方法使边框与文本的高度完全相同?