代码之家  ›  专栏  ›  技术社区  ›  Bullines

通过HTML或CSS呈现顺序

  •  2
  • Bullines  · 技术社区  · 16 年前

    最好的做法是改变网页上元素的呈现顺序。例如,我有两个div要显示在页面上:

    <div id="appleSection" class="appleStyle">
        <!-- Apple DIVs, content, form elements, etc -->
    </div>
    
    <div id="orangeSection" class="orangeStyle">
        <!-- Orange DIVs, content, form elements, etc -->
    </div>
    

    根据用户的选择(可能是按国家或其他原因),当用户更改所选国家/地区时,div呈现给用户的顺序可能会有所不同。某些国家/地区选择在Orangesection上方显示Applesection,而对于其他选择,它们的顺序是相反的。

    如果页面的核心逻辑是相同的,那么确定服务器端的顺序(可能是通过两个在div顺序上不同的页面)是最佳实践,还是只使用一个页面并使用css来控制applesection是否高于orangesection或反之亦然?

    3 回复  |  直到 16 年前
        1
  •  2
  •   Vivin Paliath    16 年前

    选择的顺序是否必须立即更改?如中所述,当用户选择一个国家时是否必须更改?还是预先渲染的?

    如果是后者,我会从服务器端执行。我会派一面旗帜来。假设您使用的是jstl或asp或其他东西,那么您可以根据标志的值来控制顺序。我认为两页来做同样的事情不是一个好主意,因为这是代码的重大重复。

    如果必须根据用户交互进行更改,我将使用类似jquery的东西和适当的css(根据用户输入使用jquery更改类)。

        2
  •  1
  •   BalusC    16 年前

    这在纯css中是不可能的。唯一的办法就是 position: absolute; 并按像素坐标将元素粘贴到所需位置。但是要使它显示得更好,您需要事先知道元素的高度,或者使内容可滚动。

    另一种客户端方式是使用javascript,但这可能会导致“wtf?”最终用户在页面加载期间看到元素立即交换/移动/调整大小时的体验。也不是很好,也不是真的不引人注目(不会像预期的那样工作,如果客户端已禁用js)。

    最好的方法确实是在服务器端视图技术中使用一些条件语句来实现这一点。

        3
  •  0
  •   Casey Chu    16 年前

    这里有一个可能的解决方案(这取决于您想如何显示您的部分)。

    <div id="fruitstand" class="apples-first">
        <div id="apples"></div>
        <div id="oranges"></div>
    </div>
    

    在CSS中:

    #fruitstand.apples-first #apples {
        float: left;
    }
    #fruitstand.oranges-first #oranges {
        float: left;
    }