gpt4 book ai didi

css - 带有垂直文本的固定栏

转载 作者:行者123 更新时间:2023-11-28 11:36:35 25 4
gpt4 key购买 nike

所以,我遇到了一个我无法弄清楚的有趣问题。

我正在尝试制作一个竖条菜单,窗口的高度均为 100%。他们有固定的位置。我希望文本是垂直的。请检查我制作的草图:

enter image description here

还有这个JSFiddle .

HTML 结构如下所示:

<header>
header
</header>

<nav>
<ul>
<li><a href="#">bar 1</a></li>
<li><a href="#">bar 2</a></li>
<li><a href="#">bar 3</a></li>
<li><a href="#">bar 4</a></li>
</ul>
</nav>

CSS 是这样的:

header {
position: fixed;
top: 0;
bottom: 0;
left: 0;
width: 250px;
padding: 20px;
background: rgb(42,42,42);
background: rgba(10,10,10,0.95);
}
nav {
position: fixed;
left: 300px;
width: 100%;
margin-left: -50%;
top: 50%;
height: 75px;

-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);

-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;

filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
background: blue;
border: 2px solid red;
}
nav ul {
margin: 0;
padding: 0;
list-style: none;
width: 100%;
}
nav ul li {
width: 100%;
}
nav ul li a {
display: block;
width: 100%;
height: 32px;
background: #f3b200;
}
nav ul li:nth-child(1) a { background: #c61c05; }
nav ul li:nth-child(2) a { background: #dc572e; }
nav ul li:nth-child(3) a { background: #d27b26; }
nav ul li:nth-child(4) a { background: #f3b200; }

现在的问题是我不知道如何按照我的意愿定位 nav。我给出的每个测量值(宽度、高度、顶部位置、左侧位置)都是基于 0 度旋转给出的。之后进行旋转。

所以高度不是视口(viewport)高度的 100%,而是视口(viewport)宽度的 100%。

我也试过在 nav 中转动 ul,在里面转动 li,但无法找到正确的方法放置此 nav 栏。

我正在寻找纯 CSS 解决方案。

最佳答案

如果我认为您想要页面高度的 100% 是正确的,请使用页面流而不是更改 position .将导航 float 在标题旁边等等。然后你可以旋转一些 <span> s 在您的链接中而不是整个链接中。这是一个改动。我会把剩下的留给你:

HTML

<header>header</header>
<ul>
<li><a href="#"><span>bar 1</span></a></li>
<li><a href="#"><span>bar 2</span></a></li>
<li><a href="#"><span>bar 3</span></a></li>
<li><a href="#"><span>bar 4</span></a></li>
</ul>
<div class="other">Loads of other content</div>

CSS

html, body {
margin:0;
padding:0;
height:100%;
}
header {
float:left;
height:100%;
width: 250px;
background: rgb(42, 42, 42);
background: rgba(10, 10, 10, 0.95);
}
ul{
float:left;
display:block;
margin:0;
padding:0;
height:100%;
}
ul li{
display:block;
margin:0;
padding:0;
float:left;
height:100%;
}

ul li a{
display:block;
height:100%;
}

ul li a span{
position:relative;
top:20px;
color:#FFF;
display:block;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
font-size:26px;
width:60px;
direction: rtl;
white-space: nowrap;
}

JSFiddle

关于css - 带有垂直文本的固定栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889845/

25 4 0