css宽度间隔

时间:2009-10-17 00:30:29

标签: css width intervals

好的,这是我以前从未遇到过的问题。我想使用CSS来指定元素宽度应始终为10个像素间隔。因此,例如,如果元素的宽度为11,则它将被提升到20,56 => 60,138 => 140等...

我怀疑CSS有办法做到这一点,但我想我还是会问。这样的事情会很好:

div { width-interval: 10px; }

2 个答案:

答案 0 :(得分:1)

这个问题是除非另外指定,否则块级元素总是窗口的大小。指定更具体的宽度后,您不需要宽度inverval。

这两种情况会有所不同;

  1. 如果块级元素是收缩包装的(在浮点数和内联块的情况下)

  2. 如果元素具有相对宽度,即百分比。

  3. 但是如果你把它设置为相对的,你就不需要间隔,因为它应该是相对于页面上的其他东西,所以当其他东西必须调整以补偿时会变得复杂。例如,如果我有两个div:

    <div id="one"></div>
    <div id="two"></div>
    

    和规则:

    #one {
    width: 50%;
    width-interval: 25px;
    }
    
    #two {
    width: 50%;
    width-interval: 27px;
    }
    

    哪一个获胜?如果排队图片或文字很重要,你可能不想要胜过另一个,但它不能忽视两者。

    我认为这个想法很好,但可能会更好地处理javascript,因为你要求它既是动态的又是基于“最近”的间隔。这可能有效:

    $(function () {
    
    $(div).each(function() {
        var cur_width = $(this).width();
        var inverval_diff = cur_width % 10;
        $(this).width(cur_width + inverval_diff);
    });
    
    });
    

    以上是jquery,如果你不使用它作为你的js框架。

答案 1 :(得分:0)

css没有这样的属性,但您可以使用其他JavaScript设置元素的宽度,例如:

<script type="text/javascript">
$(function(){
    var widthInterval = 20;
    $('div').each(function(){
        var $this = $(this);
        var divisions = parseInt($this.width() / widthInterval) + 1;
        var resWidth = (divisions * widthInterval) + "px";
        $this.css('width', resWidth);
        console.log("Resulted width: " + resWidth);
    });
});    
</script>

希望它有所帮助。