- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 (CSS) 下拉菜单,它由一个 span 元素(父元素)和其中的一个 ul(子元素,实际的下拉菜单)组成。父级是一个相对定位的 block 元素;子项具有绝对定位,以便显示在其父项下方。
现在我需要子下拉列表始终显示在父项下方。但是,我宁愿不给 child 一个固定的顶部偏移量(即父元素的高度)。 child 的高度可能会变化,我不想依赖固定的高度。有什么方法可以在不需要额外的 Javascript 的情况下做到这一点吗?
HTML 看起来像这样:
<span class="dropdown demo" data-dropdown-trigger="click"><i class="fa fa-caret-down"></i> 20 results per page
<ul class="list">
<li><a href="javascript:;">10 results</a></li>
<li><a href="javascript:;">20 results</a></li>
<li><a href="javascript:;">50 results</a></li>
<li><a href="javascript:;">100 results</a></li>
</ul>
</span>
CSS:
span.demo {
width:150px;
margin:50px 0 0 50px;
}
span.dropdown {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position:relative;
font-size:11px;
display:block;
color:#000;
padding:5px;
border-radius:2px;
border:1px solid #FFF;
font-family:'Open Sans', sans-serif;
cursor:pointer;
}
span.dropdown.show {
border:1px solid #CCC;
cursor:default;
}
span.dropdown a {
outline:0;
}
span.dropdown ul.list {
display:none;
position:absolute;
top:23px;
left:0;
width:100%;
background:#FFF;
box-shadow:2px 2px 4px rgba(0,0,0,0.15);
padding:0;
margin:0;
color:#000;
list-style:none;
border:1px solid #ccc;
border-radius:3px;
z-index:5;
}
span.dropdown.show ul.list {
display:block;
}
span.dropdown ul.list li a {
color:#31357F;
display:block;
float:none;
margin:0;
padding:5px;
text-decoration:none;
background:#FFF;
text-align:left;
margin:0;
}
span.dropdown ul.list li a:hover {
color:#FFF;
background:#217ba4;
}
我没有使用 Javascript,它负责切换下拉列表。你可以在Jsfiddle上查看.基本上,我想去掉 top: 23px in span.dropdown ul.list。将其更改为 bottom:0;让它落在 parent 之上。
$(document).ready(function(){
$.fn.dropdown = function(){
var cfg = {
ddclass: '.dropdown',
delayout: 700
};
var dd = $(this),
ev = dd.data('dropdown-trigger'),
t;
switch (ev) {
default:
dd.on('mouseover mouseout', function(e){
$(cfg.ddclass).removeClass('show');
dd.toggleClass('show', (e.type == 'mouseover'));
});
break;
case "click":
dd.on('click', function(){
dd.toggleClass('show', !dd.hasClass('show'));
});
$(document).on('mouseup', function(e){
if (!dd.is(e.target) && dd.has(e.target).length === 0) {
dd.removeClass('show');
}
});
if (!dd.data('dropdown-persistent')) {
dd.on('mouseout', function(){
t = setTimeout(function(){
if (dd.is(':visible')) dd.removeClass('show');
}, cfg.delayout);
}).on('mouseover', function(){
if (t) clearTimeout(t);
});
}
break;
}
};
$('.dropdown').each(function(){
$(this).dropdown('.dropdown');
});
});
span.demo {
width:150px;
margin:50px 0 0 50px;
}
span.dropdown {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position:relative;
font-size:11px;
display:block;
color:#000;
padding:5px;
border-radius:2px;
border:1px solid #FFF;
font-family:'Open Sans', sans-serif;
cursor:pointer;
}
span.dropdown.show {
border:1px solid #CCC;
cursor:default;
}
span.dropdown a {
outline:0;
}
span.dropdown ul.list {
display:none;
position:absolute;
top:23px;
left:0;
width:100%;
background:#FFF;
box-shadow:2px 2px 4px rgba(0,0,0,0.15);
padding:0;
margin:0;
color:#000;
list-style:none;
border:1px solid #ccc;
border-radius:3px;
z-index:5;
}
span.dropdown.show ul.list {
display:block;
}
span.dropdown ul.list li a {
color:#31357F;
display:block;
float:none;
margin:0;
padding:5px;
text-decoration:none;
background:#FFF;
text-align:left;
margin:0;
}
span.dropdown ul.list li a:hover {
color:#FFF;
background:#217ba4;
}
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<span class="dropdown demo" data-dropdown-trigger="click"><i class="fa fa-caret-down"></i> 20 results per page
<ul class="list">
<li><a href="javascript:;">10 results</a></li>
<li><a href="javascript:;">20 results</a></li>
<li><a href="javascript:;">50 results</a></li>
<li><a href="javascript:;">100 results</a></li>
</ul>
</span>
最佳答案
关于javascript - CSS 下拉菜单 : child div top offset same as parent height?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28091018/
这个问题在这里已经有了答案: How can I vertically align elements in a div? (28 个答案) Vertical Aligned Text and Im
我想做一个像 view0.height = view1.height + view2.height 这样的约束。当 view1.height 或 view2.height 改变时,view0.heig
有人可以解释为什么这个标记: 呈现大约 2x18 的 float div(在 Chrome/Firefox 中)而不是 2x2 div? 即使所有空格都被删除,图像似乎也遵循 font-
我的 HTML 页面上有一些可拉伸(stretch)的元素。 使用这个 CSS .stretchable-element { height: 25%; } 随着浏览器窗口高度的增加,可伸缩元素
我在“developer.android.com”上查看以缩小我的位图文件,但我发现了一件事我不明白。所以我很感激你能给我一点帮助。 这是一个 snippet来自 developer.android.
假设我们有以下设置: .container { background-color: red; width: 500px; min-height: 300px; } .child { b
我遇到了高度错误的问题 $(window).height(); 也有类似的问题 here 就我而言,当我尝试时 $(document).height(); 它似乎返回了正确的结果 窗口高度返回320
我正在尝试使用 javaFX (2.2) 开发桌面应用程序,但我遇到了一些困难,无法真正让它按照我希望的方式运行。作为该框架的新用户,我可能没有按应有的方式使用它... 我想要的是一种仪表板,在 Sc
就这么简单:) 我右边的列动态变化,由于左列的高度设置为 100%,我认为根据 Right_Column 的高度动态修改容器的高度会很好。有小费吗?谢谢:) 最佳答案 如果我正确理解了问题,你可以做这
我有一个 ScrollView(包含 NSTextEditor),其顶部、左侧和右侧约束相对于其容器(主窗口)正确设置为 0。 我无法使其高度为主容器的一半。有什么帮助吗? 最佳答案 如果我理解正确,
这个问题之前曾被问过(Infinite Scroll on Mobile browsers),但没有得到回应。 我正在尝试实现无限滚动。 检查文档是否在底部,导致更多加载的函数是: if ($(win
这个问题在这里已经有了答案: height:100% VS min-height:100% (4 个答案) 关闭 6 年前。
我在尝试解决这个问题时遇到了一些问题。我已经编写了一个 jquery 函数来检测用户何时点击页面底部并触发一个函数。现在,虽然这适用于最常见的屏幕尺寸,但当用户的屏幕太大以至于可以一次看到整个页面时,
如何获得与导航高度(填充)相同的导航高度 ...!? nav { width: 100%; } nav ul { text-align: center; background-
所以,实际上我可能完全想多了,应该放弃最小高度,但我目前有以下 HTML:
我正在阅读 Bootsrap3 文档。我发现这段页脚代码粘在屏幕底部。 html, body { height: 100%; } #wrap { min-height: 100%; height: a
我对容器 div 的高度有疑问。我想 它是 body 的 100%,但不起作用。我添加了 css body height=100% var d = document; $(d).ready(funct
我有一个三部分布局:页眉、内容和页脚。我非常熟悉绝对定位技术;当我希望内容 div 扩展到可用高度的 100% 时,我经常使用它。 在这种情况下,我的问题是我事先不知道页脚的高度,它是根据自己的内容动
在下面的代码中,我尝试实现无限滚动。我遇到的问题是“document.height”和“window.height”返回相同的值。有人可以帮我解决我哪里出错了吗?
我有一个页面布局,其中两个 div 在一行中彼此相邻对齐。一列包含可变长度的文本,第二列包含图像。 标记基本上如下: texttext 我的
我是一名优秀的程序员,十分优秀!