如何解决轮换清单项目
我想创建导航栏 look like this,但是旋转文本后,垂直文本与水平文本之间的距离太远了,有什么帮助吗?
.vertical {
float:right;
writing-mode:tb-rl;/*IE*/
writing-mode:vertical-lr;/* OPera/webkit*/
writing-mode:sideways-lr;/* should be the one */
}
.horizontal {
float:right;
line-height: 0em;
}
li {
display:inline-block;
<nav>
<ul class="horizontal">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><i class="far fa-circle"></i></li>
<ul class="vertical">
<li><a href="#">Clients</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</ul>
</nav>
解决方法
您可能不需要ul
。
您可以使用display:grid
(或display:inline-block
+ float
(如果不是这样的话)),最后使用shape-outside
(如果必须包装内容)周围:
* {
margin: 0;
padding: 0;
}
nav {
float: right;
shape-outside: polygon(0 0,0 15%,75% 15%,75% 100%,100% 100%,100% 0%);
/* requires a floatting element */
margin-left: 1em;
/* here clip-path + background shows the shape to wrap around*/
background: black;
color: white;
clip-path: polygon(0 0,80% 15%,80% 100%,100% 0%);
}
ul {
display: grid;
grid-template-columns: repeat(3,auto);
grid-template-rows: repeat(3,auto);
justify-content: end;
list-style-type: none;
}
li {
padding: 0.5em 0 1em 1em;
}
ul li:nth-child(3){
padding:0.5em;}
ul li:nth-child(3)~li {
grid-column: 3;
writing-mode: vertical-lr;
/* should be enough now-days*/
padding:0 0.5em 1em;
}
a {
display: block;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: bold;
color: inherit
}
p {
text-align: justify;
}
p:nth-child(odd) {
background: #bee;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" rel="stylesheet" />
<nav>
<ul class="horizontal">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li class="far fa-circle"></li>
<li><a href="#">Clients</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
<!-- random text to show wrapping effect -->
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,feugiat vitae,ultricies eget,tempor sit amet,ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris
placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi,condimentum sed,commodo vitae,ornare sit amet,wisi. Aenean fermentum,elit eget tincidunt condimentum,eros ipsum rutrum orci,sagittis tempus lacus
enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus,neque id cursus faucibus,tortor neque egestas augue,eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi,tincidunt quis,accumsan porttitor,facilisis
luctus,metus</p>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,metus</p>
如果不是网格选项,则float也可以:
* {
margin: 0;
padding:0;
}
nav {
float: right;
shape-outside: polygon(0 0,100% 0%);
background: black;
clip-path: polygon(0 0,100% 0%);
}
ul {
color: white;
text-align: right;
width:min-content;
white-space:nowrap;
}
li {
display: inline-block;
padding: 1em;
}
ul li:nth-child(3)~li {
float: right;
clear: right;
writing-mode: vertical-lr;
}
a {
display: block;
text-decoration: none;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: bold;
color: inherit
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" rel="stylesheet" />
<nav>
<ul class="horizontal">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li class="far fa-circle"></li>
<li><a href="#">Clients</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
<!-- random text to show wrapping effect -->
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,metus</p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。