我希望将相同的文本重叠在一起,以获得有关语法高亮的有趣想法。
我正在尝试使用前景中的textarea
和后台中的div
。
设置元素的相同位置以及相同的字体大小后,它们仍然不会完全重叠。我到底错过了什么?
div,textarea{
position:absolute;
top:0;
left:0;
background:transparent;
font-size:1em;
line-height:1em;
}
答案 0 :(得分:3)
为两者设置相同的font-family
textarea
具有1px
边框,因此您可以将border:1px solid transparent
添加到div
,其中包含文字以便对齐
* {
margin: 0;
padding: 0;
}
div{
border:1px solid transparent
}
div,
textarea {
position: absolute;
top: 0;
left: 0;
background: transparent;
font-size: 1em;
line-height: 1em;
font-family: arial;
}
<div>Hello, world!</div>
<textarea>Hello, world!</textarea>
答案 1 :(得分:3)
尝试明确设置font-family
,padding
和border-width
:
div,textarea{
position:absolute;
top:0;
left:0;
background:transparent;
font-size:1em;
line-height:1em;
font-family:sans-serif;
padding:0;
border-width:0;
}
两条评论:
textarea
元素定义默认样式,因此诀窍是找出浏览器设置的属性并明确覆盖这些属性。最好覆盖div
和textarea
上的属性。如果您只更改div
以适应浏览器的textarea
默认样式,那么您将在不同的浏览器中获得不同的结果。例如,在Chrome中,textarea
的默认边框宽度为1像素,而在Firefox中,则为2像素。答案 2 :(得分:1)
试试这个: -
div,textarea{
position:absolute;
top:0;
left:0;
background:transparent;
font-size:1em;
line-height:1em;
font-family:arial /*add same font-family */
}
和
div{
padding:3px 3px 0
}