我设计了一些带有按钮内部按钮的输入,当我使用固定宽度时,这似乎是一个好主意 . 例如,输入的宽度为 205px ,使用 paddingdisplay:blockposition:absolute 提交按钮为 40px width .

但是现在我在不同的布局中使用这些输入,例如在页脚中,有1,2,3或4列,我希望输入宽度适应获取fieldset容器的整个宽度,除了提交按钮的宽度 .

这是HTML结构:

<fieldset class="fieldset">
    <input type="text" class="field" name="s" placeholder="Buscar">
    <span>
        <input value="" type="submit">
    </span>
</fieldset>

我使用 <span> 中的伪选择器 :before 插入图标 . 所以提交按钮的CSS是这样的:

#widget_ID input[type="submit"]{
width: 100%;
height: 100%;
display: block;
border: 0;
outline: 0;
position: absolute;
left: 0;
top: 0;
background-color: transparent;
}

我计划在CSS3中使用 calc(100% - 40px) 来解决这个问题,但我制作了一个产品,其中一个功能是HTML5有效且CSS3有效 .

所以另一个解决方案是使用jQuery . 你会用Javascript来做吗?它过度了吗?这将是这样的代码:

$(document).ready(function(){

    $(window).on('resize', function(){      

        var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName('body')[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight;
        var inputWidth = $('#widget_ID fieldset').width() - 40;

            $('#widget_ID fieldset input').css('width', inputWidth + 'px');

    }).resize();

});

你会怎么做?提前致谢 :)