我需要将文本框的宽度设置为其父级的80%。所以首先我用
td input[type="text"]
{
width: 80%;
}
但如果input
是td
的孩子,则无法正常呈现。所以,我使用了Css表达式
td input[type="text"]
{
width: expression(this.parentNode.offsetWidth*0.8);
}
除了IE 6之外,它在我想要的每个浏览器中工作。任何人都可以帮助我,我哪里出错?我知道在IE 6中允许使用表达式。因此,使用css表达式或者做某事来做offsetWidth的问题。
提前致谢。
答案 0 :(得分:2)
输入[type =“text”]
属性选择器在IE6中不起作用。如果您想支持此浏览器,请在class="text"
上添加td input.text
和样式。
你不应该对脚本,jQuery或表达式有任何复杂的想法。
答案 1 :(得分:1)
尝试重写为
* html td input[type="text"]
{
width: expression(this.parentNode.offsetWidth*0.8) !important;
}
然而,我自己的另一种方法是检测ie版本,如果它的6重定向到错误页面,愤怒的脸警告用户:21世纪你白痴!更新!
:)
答案 2 :(得分:1)
抱歉,我正在为自己的问题写答案,想一想有人可以从中获得帮助。
我从CSS尝试了很多东西,在IE 6中没有任何效果。所以,最后使用了jquery
if (jQuery.browser.msie && jQuery.browser.version.substring(0, 1) == "6") {
$("td > input[type='text']").each(function() {
$(this).css("width", $(this).parent().width() * 0.80);
});
}
对我很好。
答案 3 :(得分:0)
我认为这个问题是由6盒模型引起的。宽度和高度包括填充和边框。 See here for more info