允许文本在 css 菜单中换行
我有一个使用无序列表来创建菜单的模板。 参见此处
当我使用 Google 翻译翻译网站时,如果翻译太长,菜单就会中断,导致浮动列表项下拉。将其翻译成法语似乎会导致问题。
如果文本太重,有没有办法可以强制文本换行渴望菜单吗?
我不介意是否必须将无序列表更改为其他内容,但我不想使用表格。
I have a template that uses an unordered list to create the menu. See here
When I translate the website using Google translate the menu breaks if the translations are too long, causing the floated list items to drop down. Translating it into French seem to cause the problem.
Is there a way I can force the text to wrap if it is too long for the menu?
I don't mind if I have to change the unordered list to something else, but I would prefer not to use a table.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 css
word-wrap 的 word-wrap 属性:break-word;
use word-wrap property of css
word-wrap: break-word;
简短版本:我们将使用
display: table-cell
。长版本是.. long:
.access
上,删除padding
规则。.sf-menu
上,删除float: left
并添加display: table
。.sf-menu li
上,删除float: left
并添加display: table-cell
和vertical-align: middle
代码>.#header
和#footer
上,添加position:relative
。.access
上,删除height: 32px
和margin-top: -32px
并添加position:absolute
和 <代码>宽度:100%。#header .access
上,添加bottom: 0
。border-left
从sf-menu a
移至sf-menu li
。.sf-menu a.first
更改为.sf-menu .first
。20px
padding
,请在开头添加一个额外的li
:;最后:
。您可能不需要
#footer
执行相同的操作。要停止“padding”
li
上的:hover
,请添加如下内容:On
#footer< /code>,添加
padding-top: 48px
。这就是一切(除非我在某个地方搞砸了),除了 IE6/7 支持。如果您想要这样,您将必须应用我的修复程序来发布新版本(如果您愿意,可以在临时新文件夹中)。当我必须先应用所有这些更改才能正确测试它时,尝试修复 IE6/7 的工作量太大了。
The short version: we're going to use
display: table-cell
.The long version is.. long:
.access
, remove thepadding
rule..sf-menu
, removefloat: left
and adddisplay: table
..sf-menu li
, removefloat: left
and adddisplay: table-cell
andvertical-align: middle
.#header
and#footer
, addposition: relative
..access
, removeheight: 32px
andmargin-top: -32px
and addposition: absolute
andwidth: 100%
.#header .access
, addbottom: 0
.border-left
fromsf-menu a
tosf-menu li
..sf-menu a.first
to.sf-menu .first
.20px
padding
on the left (and right), add an extrali
at the start:<li class="noHover" style="width: 20px; border-left: 0"> </li>
; and at the end:<li class="noHover" style="width: 20px; border-left: 0"> </li>
. You might not need the#footer
.To stop the
:hover
on the "padding"li
s, add something like this:On
#footer
, addpadding-top: 48px
.That's everything (unless I screwed up somewhere), except for IE6/7 support. If you want that, you're going to have to put a new version up with my fixes applied (can be in a temporary new folder if you like). It's too much work to attempt to fix IE6/7 when I have to apply all those changes first to test it properly.
@Pranay 指向正确的方向,但您需要将宽度设置为 li 而不是 ul!例如:
并且在菜单
ul
之后插入一个清除div:其中
clear
类定义为:@Pranay pointed to the right direction but you need to set the width to the
li
s not theul
! so for example:And insert a clearing div right after the menu
ul
:Where the
clear
class is defined as: