保留混合浮动元素的视觉顺序
Preserve visual order of mixed floated elements
JSFiddle:https://jsfiddle.net/ttpkfs9s/
我有一个UI组件,它应该将元素排列成一行,并在左侧和右侧显示元素,活动元素位于中间:
[1][2][3] [4] [5][6][7][8][9]
到目前为止,我已经通过浮动元件left
和right
来实现这一点,同时将其中一个保持在float: none;
中间(这已经足够好了(。
然而,在实现导航JS时为时已晚,我意识到我犯了一个巨大的错误,元素的实际显示顺序如下:
[1][2][3] [4] [9][8][7][6][5]
这是一个巨大的问题,因为这些元素应该是可点击的/掌上
有没有什么最多不太侵入性的CSS/HTML选项我可以用来获得正确的显示顺序?
EDIT:我错过了关于需要活动div始终位于行中心的部分。
您可以将div包含在一个容器中,并使容器浮动,但这可能很难做到
我随意改变了一下,也许你可以用,也许你不能。
我将所有项目设置为相同的宽度,并创建了一个函数,用于在单击其中一个项目后调整div的大小。
https://jsfiddle.net/ttpkfs9s/1/
html
<div class="row">
<div class="item left">1</div>
<div class="item left">2</div>
<div class="item left">3</div>
<div class="item left">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
<div class="item">10</div>
css
.row {
height: 150px;
background: blue;
width: 100%;
}
.item {
float: left;
padding: 2.5px;
color: white;
width: 9.4%;
height: 100%;
background: red;
margin: 0 0.3%;
box-sizing: border-box;
transition: 0.7s linear;
}
.active {
color: black;
background: yellow;
}
js
function setWidth(){
if($(".item").hasClass("active")){
$(".item").width("6%");
$(".active").width("40%");
};
}
$(".item").click(function(){
$(".item").removeClass("active");
$(this).addClass("active");
setWidth();
})
相关文章:
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 按顺序添加和删除类
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript-根据赋值顺序,按键合并对象数组
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- querySelector/getElementByClassName嵌套项的顺序
- 以不同的顺序输出数据
- 重新排列HTML元素的顺序并更改内容
- 在Javascript中列出顺序子集元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Mongodb$in以与数组中相同的顺序获取结果
- 如何使用phonegap从安卓设备中提取联系人的字母顺序
- 在表单OnChange中交换数字顺序
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 预保存钩子:mongoose中回调的顺序如何
- 为什么生成器中的console.log会按这样的顺序出现
- 保留混合浮动元素的视觉顺序
- 简单的方式来改变输入字段的视觉顺序动态(不改变表单HTML)