0

这是代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>

    <style type="text/css">

        .start.analyze {
            color: #fff;
            background-color: #1989fa;
            border-color: #1989fa;
        }

         .start.analyze{
            width: 15%;
            line-height: 42px;
            margin-top: 10px;
            font-size: 14px;
        }
    </style>

    <script>
        function displayResult() {
            var x = document.getElementById("fname").value;
            alert(x);
        }
    </script>
</head>
<body>
<div id="login">
<form>
    选择一个文件上传:
    <input class="choose file" type="file" id="fname" size="50"/>
    <br>    
    <a href="https://www.baidu.com"><button class="start analyze" type="button" onclick="displayResult()">开始分析</button></a>
</form>
</div>
</body>
</html>

运行截图如下:

如题,怎么水平,竖直都居中,网上的答案乱的很啊,都失败了

5个回答

2

1.能用flex用flex,虽然有兼容问题但实现方式最正副作用最少

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
}

2.使用绝对定位大移+transform小位移修补

.parent {
  position: relative;
}
.child {
  position: absolute;/*脱离文档流了可能对布局有些副作用*/
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);/*左移上移半个自身*/
}
0

flex布局推荐,建议阅读阮老师的flex教程

0

竖直居中最好的方法就是,设置高度等于行高

0

最简单的方法:利用table布局。父盒 display:table; 子元素: display:table-cell; vertical-align: middle; text-algin: center; 搞定~~~~
还可以用position。 父盒 position: relative; 子元素 position: absolute; left:50%; top:50%; margin-left: -width/2; margin-top: -height/2
最后一种,使用css3的transfrom。 子元素 transfrom: translate(50%, 50%)
三种方法都可以实现。如果需要垂直水平居中的元素有固定宽高可以用第二种,如果尺寸不固定可以用第一或者第三。

撰写答案