FeR*_*cHo 8 html css css-position
我有一个div模拟小微调器的块,一切正常,但是css我的配置位于右上翼,我试图将它居中,但是当我从移动设备上看到它时,它从原地移动..可以在不改变不同尺寸设备中的位置的情况下将其居中吗?
.spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
Run Code Online (Sandbox Code Playgroud)
Lin*_*TED 12
由于它是固定的,因此top|left|right|bottom属性是相对于窗口的。所以一个百分比的位置,在这种情况下 50% 应该可以解决问题。
.spinner {
display: block;
position: fixed;
z-index: 1031; /* High z-index so it is on top of the page */
top: 50%;
right: 50%; /* or: left: 50%; */
margin-top: -..px; /* half of the elements height */
margin-right: -..px; /* half of the elements widht */
}
Run Code Online (Sandbox Code Playgroud)
替代方案,由 Utkanos 在评论中给出
.spinner {
display: block;
position: fixed;
z-index: 1031; /* High z-index so it is on top of the page */
top: calc( 50% - ( ...px / 2) ); /* where ... is the element's height */
right: calc( 50% - ( ...px / 2) ); /* where ... is the element's width */
}
Run Code Online (Sandbox Code Playgroud)
如果您希望微调器覆盖整个视口:
.spinner {
border: 1px solid;
position: fixed;
z-index: 1;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 50 50'%3E%3Cpath d='M28.43 6.378C18.27 4.586 8.58 11.37 6.788 21.533c-1.791 10.161 4.994 19.851 15.155 21.643l.707-4.006C14.7 37.768 9.392 30.189 10.794 22.24c1.401-7.95 8.981-13.258 16.93-11.856l.707-4.006z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E") center / 50px no-repeat;
}Run Code Online (Sandbox Code Playgroud)
<div class="spinner"></div>Run Code Online (Sandbox Code Playgroud)
如果您希望它只是 gif/svg 的大小:
.spinner {
border: 1px solid;
position: fixed;
z-index: 1;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 50px;
height: 50px;
margin: auto;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 50 50'%3E%3Cpath d='M28.43 6.378C18.27 4.586 8.58 11.37 6.788 21.533c-1.791 10.161 4.994 19.851 15.155 21.643l.707-4.006C14.7 37.768 9.392 30.189 10.794 22.24c1.401-7.95 8.981-13.258 16.93-11.856l.707-4.006z'%3E%3CanimateTransform attributeType='xml' attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E") center / contain no-repeat;
}Run Code Online (Sandbox Code Playgroud)
<div class="spinner"></div>Run Code Online (Sandbox Code Playgroud)
尝试这个来获得所有尺寸的中心位置
.spinner{
position: absolute;
margin: auto;
top:0;
bottom: 0;
left: 0;
right: 0;
}
Run Code Online (Sandbox Code Playgroud)
只需尝试transform和位置top和left组合...
注意:这里我使用 font-awesome 只是为了演示
.spinner {
position: fixed;
z-index: 1031;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<div class="spinner"><i class="fa fa-spinner fa-spin"></i></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23339 次 |
| 最近记录: |