拉伸<a>标记以填充整个<li>
这里有一个简单的菜单结构:
<ul id="menu"> <li><a href="javascript:;">Home</a></li> <li><a href="javascript:;">Test</a></li> </ul>
我想要<a>
被拉伸,以便填充整个<li>
。 我尝试使用像width: 100%; height: 100%
width: 100%; height: 100%
但没有效果。 如何正确拉伸锚标签?
“a”标签是内嵌级别的元素。 没有内联级别元素可能会设置其宽度。 为什么? 因为内联层次元素是为了表示stream畅的文本,理论上可以从一行到另一行。 在这种情况下,提供元素的宽度是没有意义的,因为你不一定知道它是否要包装。 为了设置它的宽度,你必须把它的显示属性改为block
或inline-block
:
a.wide { display:block; } ... <ul id="menu"> <li><a class="wide" href="javascript:;">Home</a></li> <li><a class="wide" href="javascript:;">Test</a></li> </ul>
如果内存服务,您可以在IE6中的某些内联级别元素上设置宽度。 但那是因为IE6错误地实现了CSS,并且想混淆你。
只需使用display:block;
设置A display:block;
:
ul#menu li a { display: block;}
display:flex
是HTML5的方式。
看小提琴
有用的黑客框架button,或任何其他元素,但您可能需要先删除其填充,并将其设置为所需的高度。
在这种情况下,angular度材料标签,这是一种棘手,使他们作为一个“标准”的网站导航。
注意,一旦你进入标签,指针就会改变:<a>现在被拉伸以适应它们的父维度。
除了话题之外,即使是在“大面积”,也要注意无瑕angular材料如何显示连锁效应。
.md-header{ /* THIS IS A CUSTOM HEIGHT */ height: 50vh !important; /* '!important' IS JSFIDDLE SPECIFIC */ } md-tab{ padding: 0 !important; /* '!important' IS JSFIDDLE SPECIFIC */ } a{ display: flex; align-items: center; justify-content: center; height: 100%; }
一种不同的方法:
<ul> <li> <a></a> <img> <morestuff>TEXTEXTEXT</morestuff> </li> </ul> a { position: absolute; top: 0; left: 0; z-index: [higher than anything else inside parent] width:100%; height: 100%; }
如果链接的容器内部还有图像等,或者根据图像/内容大小可能有不同的大小,这是有帮助的。 有了这个,锚标签本身可以是空的,你可以根据需要在锚的容器内部安排其他元素。 锚会始终匹配父级的大小,并将在顶部,使整个li
可点击。
<!doctype html> <html> <head> <style type="text/css"> #wide li a { display:block; } </style> </head> <body> <ul id="menu"> <li><a href="javascript:;">Home</a></li> <li><a href="javascript:;">Test</a></li> </ul> </body> </html>
您应该尽量避免在每个标签上使用课程,以便您的内容易于维护。
我用这个代码来填充宽度和高度 100%
HTML
<ul> <li> <a>I need to fill 100% width and height!</a> </li> <ul>
CSS
li a { display: block; height: 100%; /* Missing from other answers */ }
使用line-height和text-indent代替li元素的填充,并使用display: block;
锚标签
我只想在标签视图下使用这个function,即在720px以下,所以在我做的媒体查询中:
@media(max-width:720px){ a{ display:block; width:100%; } }
如果你的<li>
s必须有一个特定的高度,那么你的<a>
s只能拉伸到<li>
的宽度而不是高度了。 我解决这个问题的一种方法是使用CSS display:block
并向我的<a>
s添加填充,或者将<a>
s围绕<a>
s
<ul id="menu"> <a href="javascript:;"><li>Home</li></a> <a href="javascript:;"><li>Test</li></a> </ul>