css列表项具有所有分辨率的同一页边距

css列表项具有所有分辨率的同一页边距,css,list,margin,resolution,Css,List,Margin,Resolution,我正在尝试制作一个菜单,我希望我的菜单在所有分辨率下都以页面左右两侧为中心。eg 800 width ---------------------------------------- | menu item1 menu item2 menu item3 | | | ----------------------------------------

我正在尝试制作一个菜单,我希望我的菜单在所有分辨率下都以页面左右两侧为中心。eg

  800 width
       ----------------------------------------
      | menu item1    menu item2    menu item3 |
      |                                        |
       ----------------------------------------

  1920 width
       ------------------------------------------------
      |   menu item1       menu item2      menu item3  |
      |                                                |
       ------------------------------------------------
我编写了一个jquery函数,它计算屏幕宽度的新边距值,并更改每个菜单项的边距。这很有效。但我想知道的是,只有css才能做到这一点吗


我也试过左边距:5%,但当屏幕的宽度较低(如800)时,我的菜单项不适合div,有些项目会下降。

好吧,百分比的问题是,当与常量混合时,它们变得很难处理。您可能还可以为项目的字体大小/填充/行高定义一个%的值,从而使项目适合div


另一方面,如果菜单中只有3个项目,则在项目1和3上使用float:left/right更容易,并且只根据屏幕宽度更改其边距。当然,这可能不适用于包含更多项目的菜单

好吧,百分比的问题是,当与常数混合时,它们变得很难处理。您可能还可以为项目的字体大小/填充/行高定义一个%的值,从而使项目适合div


另一方面,如果菜单中只有3个项目,则在项目1和3上使用float:left/right更容易,并且只根据屏幕宽度更改其边距。当然,这可能不适用于包含更多项目的菜单

所以javascript函数更好更简单?这真的取决于你的设计,如果你同意将#1和#3放在div的远侧(因此在#2的每侧都创建了一个大边距),你甚至不需要JS。只要把它们浮起来就行了。但我不会。此外,您真的不需要通过JS来操纵边距。只需给body元素一个关于屏幕宽度的类,并基于该选择器定义css,比如:“body.窄小的.item”或“body.wide.item”,这样javascript函数就更好、更简单了?这取决于您的设计,如果您同意将#1和#3放在div的远侧(因此在#2的每侧都有一个较大的边距),你甚至不需要JS。只要把它们浮起来就行了。但我不会。此外,您真的不需要通过JS来操纵边距。只需为body元素提供一个关于屏幕宽度的类,并基于该选择器定义css,如:“body.窄小的.item”或“body.wide.item”