【发布时间】:2018-02-17 15:40:33
【问题描述】:
我有一个网页,我正在尝试针对桌面和移动设备进行优化,但对于如何将 div 放置在屏幕上引用相同 id 的不同位置几乎没有经验。任何关于最佳实践的建议都会非常有帮助。
<input id='feature-filter' type='text' placeholder='Filter by name' />
例如,上面我有一个名为feature-filter 的输入,它在桌面上应位于桌面上名为header 的菜单栏中。请注意,feature-filter 没有随附的 CSS。
#header {
display: flex;
position: absolute;
align-items: center;
top: 0px;
width: 100%;
line-height: 50px;
height: 50px;
background: rgba(12, 12, 12, 0.8);
color: #eee;
font: 16px/20px 'Open Sans', sans-serif;
font-weight: 500;
text-align: center;
vertical-align: middle;
}
<div id='header'>
<button title = "ButtonA" id = "A"></button>
<button title = "ButtonB" id = "B"></button>
<button title = "ButtonC" id = "C"></button>
<input id='feature-filter' type='text' placeholder='Filter by name' />
</div>
但是,在移动版本中,我想将此输入放在页面底部的图例中。在我的 javascript 中,有一个事件侦听器可以从 feature-filter 中提取数据。
#legend { z-index: 101010; padding: 5px; position: fixed; text-align: center;
color: #fff; bottom: 0px; width: 300px; background: #181818; opacity: 0.92;
font-family: 'Open Sans', sans-serif; left: 0; right: 0; font-weight: 300}
<div id='legend'>
<input id='feature-filter' type='text' placeholder='Filter by name' />
</div>
是否可以在 javascript 中引用相同的 DOM id 并将 feature-filter 放置在 html 的两个不同位置 - 一个用于移动版本,一个用于桌面版本?
解决这个问题的最佳方法是什么?使用 CSS 类仍然需要在 html 中具有两个具有相同 id 的单独输入
任何基本的解释或建议将不胜感激。
【问题讨论】:
-
在 html 中不能对两个不同的元素使用相同的 id,id 被设计为唯一标识符,具有最高的 css 选择器值。我会使用@media 为移动和桌面创建不同的规则集。如果您将 id 用于两个元素;如果它没有自动抛出错误并且停止功能将在您的程序或在这种情况下的网页中引入意外行为。这是@media的链接
标签: javascript html css