死中心(垂直和水平)仅css选项卡

时间:2018-03-08 20:47:48

标签: html css

我真的需要你的帮助,

目前,鉴于下面的当前html和css标记,它将标签放在用户屏幕顶部附近。如何在下面修改标记,以便我可以安排它以死为中心(垂直和水平居中)?

以下是小提琴的一个例子:https://jsfiddle.net/812ehkyf/559/

这是标记:

<!DOCTYPE html>

<html>

<head>

<style>
body {
   background: #999;  
   padding: 20px 40px; 
}

.tabs {
  position: relative;   
  min-height: 200px; /* This part sucks */
  clear: both;
  margin: 35px 0 25px;
  background: white;
}
.tab {
  float: left;

}
.tab label {
  background: #eee; 
  padding: 10px; 
  border: 1px solid #ccc; 
  margin-left: -1px; 
  position: relative;
  left: 1px; 
  top: -29px;
  -webkit-transition: background-color .17s linear;
}
.tab [type=radio] {
  display: none;   
}
.content {
  position: absolute;
  top: -1px;
  left: 0;
  background: white;
  right: 0;
  bottom: 0;
  padding: 20px;
  border: 1px solid #ccc; 
  -webkit-transition: opacity .6s linear;
  opacity: 0;
}
[type=radio]:checked ~ label {
  background: white;
  border-bottom: 1px solid white;
  z-index: 2;
}
[type=radio]:checked ~ label ~ .content {
  z-index: 1;
  opacity: 1;
}
</style>

</head>

<body>


<div class="tabs">

   <div class="tab">
       <input type="radio" id="tab-1" name="tab-group-1" checked>
       <label for="tab-1">Tab One</label>

       <div class="content">
           <p>Stuff for Tab One</p>
       </div> 
   </div>

   <div class="tab">
       <input type="radio" id="tab-2" name="tab-group-1">
       <label for="tab-2">Tab Two</label>

       <div class="content">
           <p>Stuff for Tab Two</p>

           <img src="http://placekitten.com/200/100">
       </div> 
   </div>

    <div class="tab">
       <input type="radio" id="tab-3" name="tab-group-1">
       <label for="tab-3">Tab Three</label>

       <div class="content">
           <p>Stuff for Tab Three</p>

           <img src="http://placedog.com/200/100">
       </div> 
   </div>

</div> 

</body>

</html>

1 个答案:

答案 0 :(得分:-1)

您可以应用css技巧(可以停止使用浏览器渲染更新)。垂直居中有时是一项巨大的工作,有一个使用jQuery的解决方案,你甚至可以使用javascript或其他js框架。

//get the height of the window
    var h = $(window).height();
//get the tabs height
    var e = $('.tabs').height();
//full height - tabs height = space between tabs and top plus the space between tabs and bottom, divided by two
    var y = ((h - e) / 2);
//we set this half of blank space as margin-top.
    $('.tabs').css('margin-top', y);

它适用于所有屏幕。您可以在

时触发它
 $(document).ready 

我建议您添加

的触发器
$(window).resize()

事件监听器以保持响应能力。

https://jsfiddle.net/812ehkyf/580/