这是我第一次尝试在'em'测量中制作完整的网页布局。我正在构建一个实时预览降价编辑器。
此页面在Firefox和Chrome中完美运行,但在IE(我有IE9)和Opera(昨晚更新)中,文本区域显着地射击边界。在Opera中,textarea的边界也没有显示圆角。 (文本区域显示圆角但不显示其边框)
这是textarea的css
#pad {
background-color:#BBBB99;
background-image:url("../img/edit.png");
border-color:rgba(32, 32, 52, 0.39);
border-radius:1em 1em 1em 1em;
font-size:1.3em;
height:33.3em;
margin:0.3em;
outline:medium none;
padding:0.9em 0.7em;
resize:none;
width:26em;
text-align: left;
}
这是html代码段
<div class='container'>
<div id='left'>
<textarea id = 'pad' wrap="on" ></textarea>
</div>
<div id='right'>
<div id='preview'></div>
</div>
</div>
我在正文中设置了'font:100%'。 Here is the link of demo if you need to check it.
答案 0 :(得分:4)
我认为问题是由#pad
中字体大小的更改引起的。
当您设置基本字体大小(例如18px)时,所有子元素都会将1em
视为18px
。但是,如果您将其中一个子项中的font-size更改为1.2em,则嵌套在该子项中的所有子元素将开始将1em
视为22px
:
body {
font-size: 18px;
}
.parent {
font-size: 1em; /* 18px */
}
.child {
font-size: 1.2em /* 22px */
}
.child > .child {
font-size: 1em; /* 22px */
}
我认为在Internet Explorer中发生的事情是,在计算1.2em
width
之前,字体大小已更改为#pad
。因此,Firefox和Chrome中的宽度为26 * 18px
,而IE中的宽度为26 * 22px
。
为了解决这个问题,我会将宽度设置为百分比,而不是固定的em
测量值。
修改
关于Opera的圆角问题; Opera似乎并不善意border-width
和border-style
都没有设置。
尝试将border-color
更改为border: 1px solid rgba(32, 32, 52, 0.39);
,看看是否能解决您的问题。
答案 1 :(得分:0)
对于特殊的css3功能,请为每个浏览器使用供应商前缀:
而不是border-radius:1em 1em 1em 1em;
使用:
-webkit-border-radius:1em;
-moz-border-radius:1em;
-o-border-radius:1em;
-ms-border-radius:1em;
border-radius:1em;