order属性可以在不改变html元素结构的情况下,改变元素在页面中渲染的顺序。
对于需要交错式排版的场景是最好不过了。
比如下面这种交错式时间轴,就可以利用order结合nth-child选择器完美实现。
点击图片看效果。
核心代码如下:
.wrapper { width: 100%; min-width: 1200px; background: #2cd8f5 url(images/line-bg.png) no-repeat 0 0 / cover; } .develop { box-sizing: border-box; width: 90%; max-width: 1600px; min-width: 1200px; margin: 0 auto; padding: 100px; } .develop-li~.develop-li { margin-top: 90px; } .develop-li:last-child .num::after { /* 把伪对象的内容去掉 */ content: none; } .develop-box { display: flex; gap: 40px; width: calc(50% + 35px); transition: 0.2s; cursor: pointer; } .develop-li:nth-child(2n) .develop-box { margin-left: auto; } .develop-li:nth-child(2n+1) .num { order: 1; margin-left: 75px; } .develop-li:nth-child(2n) .text { border-radius: 0 10px 10px 0; } .develop-li:nth-child(2n) .text::after { left: -75px; right: auto; border-right: 75px solid #fff; border-left: none; } .develop-li:nth-child(2n) .num { margin-right: 75px; } .num { position: relative; display: inline-block; width: 70px; height: 70px; background-color: #fff; color: #f2ba35; border-radius: 50%; text-align: center; line-height: 70px; font-size: 1.5rem; transition: 0.2s; } .text { position: relative; /* width: calc(50% - 60px - 40px); */ flex: 1; background-color: #fff; height: 70px; line-height: 70px; padding-left: 50px; border-radius: 10px 0 0 10px; font-size: 1.125rem; } .text::after { content: ''; position: absolute; border-left: 75px solid #fff; border-top: 35px solid transparent; border-bottom: 35px solid transparent; right: -75px; top: 0; } .num::after { content: ''; position: absolute; width: 8px; height: 90px; background-color: #fff; left: 50%; margin-left: -4px; bottom: -90px; } .develop-box:hover { filter: drop-shadow(0 0 20px rgba(0, 109, 128, 0.3)); } .develop-box:hover .num { transform: scale(1.15); }
发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。