垂直居中 解决方法

使用flex解决垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            padding:0;
            margin: 0;
            box-sizing: border-box;
        }
        /*使用absolute和translate,垂直居中*/
        /*body {*/
            /*padding:1em calc(50% - 450px);*/
            /*background-color: mistyrose;*/
        /*}*/
        /*main {
            position: absolute;
            top:50%;
            left: 50%;
            !*根据自身的width,height进行百分比偏移*!
            transform: translate(-50% , -50%);
            width:40%;
            padding: 1em;
            background-color: grey;
        }*/
        /*main {*/
            /*margin: 50vh auto 0;*/
            /*padding: 1em 1.5em;*/
            /*width: 28em;*/
            /*background-color: grey;*/
            /*transform: translateY(-50%);*/
        /*}*/
        /*更好的方法,使用flex*/
        body {
            display: flex;
            height: 100vh;

            background-color: antiquewhite;
        }
        main {
            margin: auto;

            display: flex;
            align-items: center;
            justify-content: center;
            flex-flow: column;
            width: 28em;
            height: 10em;
            background-color: gray;
        }
    </style>
</head>
<body>
<main>
    <h1>Am I centered yet?</h1>
    <p>Center me, please!</p>
</main>
</body>
</html>
时间: 2024-10-13 22:36:13

垂直居中 解决方法的相关文章

安卓移动端line-height垂直居中出现偏移的解决方法

目前移动端在项目使用的rem,安卓手机上line-height属性,让它的值等于height,结果发现是不居中的. 出现此问题的原因是Android在排版计算的时候参考了primyfont字体的相关属性(即HHead Ascent.HHead Descent等),而primyfont的查找是看`font-family`里哪个字体在fonts.xml里第一个匹配上,而原生Android下中文字体是没有family name的,导致匹配上的始终不是中文字体,所以解决这个问题就要在`font-fami

css的兼容性问题和解决方法

1. 默认的内外边距不同 问题: 各个浏览器默认的内外边距不同 解决: *{margin:0;padding:0;} 2. 水平居中的问题 问题: 设置 text-align: center ie6-7文本居中,嵌套的块元素也会居中 ff /opera /safari /ie8文本会居中,嵌套块不会居中 解决: 块元素设置 1.margin-left:auto;margin-right:auto 2.margin:0 auto; 3. <div align=”center”>div> 3

select中文字垂直居中解决办法

我们知道select标签在各个浏览器中的属性和各浏览器的支持各有些不同,从而造成select选择框在各浏览器的显示有不同,下面我们通过对主要 外形CSS属性的支持,打造全兼容select. 我对select的height.padding.line-height分别利用控制变量的方法写了个DEMO在各浏览器上测试三种情况:height.100.padding.0.height.no.padding.100.no.height.no.padding,结果如  链接图片各浏览器DEMO外观 我们可以得

浏览器兼容问题与解决方法

浏览器兼容问题是指,不同厂商开发的浏览器针对同一段代码的不同解析,造成页面展示效果出现差异的情况,很多时候为了追求显示效果的一直,前端开发人员就要针对不同兼容问题应用相应的方法处理,达到效果一致的目的. 下面这些是平时开发过程中遇到的,做个汇总,方便查阅. 1.<!DOCTYPE HTML>文档类型的声明 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.横向双外边距 产生条件:在IE6中块元素浮动后(左浮左margin

UILabel顶部对齐解决方法(转载)

问题 我有一个UILabel高度最多能显示两行,如果里面内容只有一行,它是垂直居中的.怎么能让它顶端对齐呢? 回答 答案1:用sizeToFit改变UILabel的高度 nevan king,1969 赞 没法直接改变UILabel的垂直对齐方式,但是把 label 的 frame 高度改小也能实现相同的效果.为了看得清楚,我把 label 标为橘黄色了. 最简单的做法是: [myLabel sizeToFit]; sizeToFit 如果内容长度超过一行,把numberOfLines设成 0(

【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳

1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响.所以只好笨手笨脚地把padding去掉,换成margin.这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象. 现在终于发现解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置

CSS-垂直|水平居中问题的解决方法总结

题外话:前两天和专业老师探讨最近的一个项目,涉及到对一个浮动的盒子局中的问题,老师的解决方法打开了我的新思路.让我有了总结一下平时的居中问题的想法.不然可能忘掉了以后又要到处寻找解决办法了.另外也给我一个启示:启示解决方法有很多,就看你能不能对知识灵活运用.也是通过这件事我体会到了"灵活运用"的真正含义.做事情是这样,做技术尤其要这样. 这个总结要一直在整理完善中,以后有了什么新的想法.新的解决办法都要再修改.可惜不在github中,不然可以集思广益了. ---------------

移动端网页布局中需要注意事项以及解决方法总结

移动端网页布局中需要注意事项以及解决方法总结,这份对我们在布局移动端网页的时候非常有用! winphone系统a.input标签被点击时产生的半透明灰色背景怎么去掉<meta name="msapplication-tap-highlight" content="no">1.关闭iOS键盘首字母自动大写<input type="text" autocapitalize="off" />2.禁止文本缩放h

IE6常见的bug及解决方法

1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9,9要分给文字的上面与下面,怎么分?IE6就会与其它的不同,所以,尽量避免. 1)字体大小为奇数之边框高度少1px