jquery - 在视口(viewport)中垂直居中旋转的 div(窗口高度)

标签 jquery html css

我有两个 fixed div,一个在页面的两侧。

我已将它们旋转 90 度并设法将它们移到两侧。

但是我无法让它们垂直居中

此外,我必须为 div 定义 width 以使文本保持在一行上,尽管我不想设置宽度,因为我无法控制文本内容..

.nav-previous, .nav-next { 
  position:fixed;
  top: 0; bottom: 0;
}

.nav-previous { left: 0px; }
.nav-next { right: 0px; }

.nav-previous a, .nav-next a {
  display: inline-block;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  width: 300px;
  font-size: 1.25em; 
  color: #383838;
  margin: 0; padding: 20px;
}

.nav-previous a { 
  right: 0;
  transform-origin: top right;
  transform:rotate(-90deg);      
}

.nav-next a { 
  left: 0; 
  transform-origin: top left;
  transform:rotate(90deg); 
}
<div class="navigation">
  <div class="nav-previous"><a href="#">previous</a></div>
  <div class="nav-next"><a href="#">next</a></div>
</div>

jsFiddle:https://jsfiddle.net/azizn/3hq6xgL4/

最佳答案

怎么样 - 我已经使用 translate 将文本居中:

/* this vertically centres the containers */
.navigation .nav-previous, 
.navigation .nav-next { 
  display:inline-block;
  position:fixed;
  top: 50%;
  transform: translateY(-50%);
}

/*this moves the links onto the screen (after the translating and rotating is done*/
.navigation .nav-previous { left: 20px; }
.navigation .nav-next { right: 20px; }

.navigation .nav-previous a,
.navigation .nav-next a {
  display: inline-block;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 1.25em; 
  color: #383838;
  margin: 0; 
  padding: 20px;
  transform-origin: center;      
}

.navigation .nav-previous a{
  transform: translate(-50%, 0) rotate(90deg); /* move left 50% before rotating*/
}
.navigation .nav-next a {
  transform: translate(50%, 0) rotate(90deg); /* move right 50% before rotating*/
}

/* styles below to show it is centered */
html,
body {height:100%; padding:0; margin:0;}
body:after {content:''; height:50%; background:blue; display:block;}
<div class="navigation">
  <div class="nav-previous"><a href="3">previous</a></div>
  <div class="nav-next"><a href="#">next</a></div>
</div>

关于jquery - 在视口(viewport)中垂直居中旋转的 div(窗口高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160750/

相关文章:

javascript - 如何使用 addClass() 将类添加到元素的类列表中

html - 关键帧动画 - 即时变化

Javascript 定时下载

jquery - 转变个人值(value)观而不重写自己

css - 父容器溢出 : auto, 但当屏幕高度改变时子容器高度仍然改变

javascript - 一个函数 JQuery 的不同速度

javascript - 滚动后如何将div保持在屏幕底部

javascript - Angular : "tab" keycode event not firing

html - 实现 JWT 存储以允许浏览器刷新但在选项卡/浏览器关闭时清除

html - 隐藏的可滚动 div,应该适用于所有浏览器