zoukankan      html  css  js  c++  java
  • web笔试题(3)

    1.div层中文本的居中问题?

    单行垂直居中(重点是里面的文字是单行)

    <style>
    #div1{
    300px;
    height:200px;
    background:#F00;
    line-height:200px;
    overflow:hidden;
    }

    </style>
    </head>

    <body>
    <div id="div1">hellohello</div>
    </body>
    </html>

    2.多行未知高度文字的垂直居中

    设定Padding,使上下的padding值相同即可。这种方法的优点就是它可以在任何浏览器上运行,并且代码很简单,只不过这种方法应用的前提就是容器的高度必须是可伸缩的。

    <style>
    #div1{
    300px;

    background:#F00;
    padding:20px;//设置padding:xxx来实现
    }

    </style>
    </head>

    <body>
    <div id="div1">
    <p>hellohello</p>
    <p>hellohello</p>
    <p>hellohello</p>
    </div>
    </body>
    </html>

    3.多行文本固定高度的居中

    CSS中的vertical-align属性只会对拥有valign特性的(X)HTML标签起作用,但是在CSS中还有一个display

    属性能够模拟<table>,所以我们可以使用这个属性来让<div>模拟<table>就可以使用vertical-align了。注意,display:table和

    display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此我们要为需要定位的文本再增加一个<div>元素:

    <style>
    body { font-size:12px;font-family:tahoma;}
    div#wrap {
    height:400px;
    display:table;
    }
    div#content {
    vertical-align:middle;
    display:table-cell;
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    }

    </style>
    </head>

    <body>
    <body>
    <div id="wrap">
      <div id="content">现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!
      </div>
    </div>
    </body>
    </html>

    但不幸的是IE 6 并不能正确地理解display:table和display:table-cell,因此这种方法在

    IE 6及以下的版本中是无效的。

    4. 在IE中的解决方案

    在IE 6及以下版本中,在高度的计算上存在着缺陷的。在IE 6中对父元素进行定位后,如果再对子元素进行百分比计算时,计算的基础似乎是有继承性的(如果定位的数值是绝对数值没有这个问题,但是使用百分比计算的基础将不再是该元素的高度,而从父元素继承来的定位高度)。例如,

    <div id="wrap">
    <div id="subwrap">
    <div id="content">
    </div>
    </div>
    </div>
    如果我们对subwrap进行了绝对定位,那么content也会继承了这个这个属性,虽然它不会在页面中马上显示出来,但如果再对content进行相对定位的时候,你使用的100%分比将不再是content原有的高度。例如,我们设定了subwrap的position为40%,我们如果想使content的上边缘和wrap重合的话就必须设置top:-80%;那么,如果我们设定subwrap的top:50%的话,我们必须使用100%才能使content回到原来的位置上去,但是如果我们把content也设置50%呢?那么它就正好垂直居中了。所以我们可以使

    用这中方法来实现IE 6中的垂直居中:

    <style>
    body { font-size:12px;font-family:tahoma;}
    div#wrap {
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    height:400px;
    position:relative;
    }
    div#subwrap {
    position:absolute;
    top:50%;
    }
    div#content {
    position:relative;
    top:-50%;
    }
    </style>
    </head>

    <body>
    <div id="wrap">
    <div id="subwrap">
    <div id="content">现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!
    现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!现在我们要使这段文字垂直居中显示!
    现在我们要使这段文字垂直居中显示!

    </div>
    </div>
    </div>
    </body>
    </html>

    div#wrap {
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    height:400px;
    position:relative;
    }
    div#subwrap {
    position:absolute;
    border:1px solid #000;
    top:50%;
    }
    div#content {
    border:1px solid #000;
    position:relative;
    top:-50%;
    }

    五、完美的解决方案

    那么我们综合上面两种方法就可以得到一个完美的解决方案,不过这要用到CSS hack的知识。对于如果使用CSS Hack来区分浏览器,你可

    以参考这篇“简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera”:

    div#wrap {
    display:table;
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    height:400px;
    _position:relative;
    overflow:hidden;
    }
    div#subwrap {
    vertical-align:middle;
    display:table-cell;
    _position:absolute;
    _top:50%;
    }
    div#content {
    _position:relative;
    _top:-50%;
    }
    至此,一个完美的居中方案就产生了。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> 多行文字实现垂直居中 </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    body { font-size:12px;font-family:tahoma;}
    div#wrap {
    display:table;
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    height:400px;
    _position:relative;
    overflow:hidden;
    }
    div#subwrap {
    vertical-align:middle;
    display:table-cell;
    _position:absolute;
    _top:50%;
    }
    div#content {
    _position:relative;
    _top:-50%;
    }
    </style>
    </head>
    <body>
    <div id="wrap">
    <div id="subwrap">
    <div id="content"><pre>现在我们要使这段文字垂直居中显示!
    div#wrap {
    border:1px solid #FF0099;
    background-color:#FFCCFF;
    760px;
    height:500px;
    position:relative;
    }
    div#subwrap {
    position:absolute;
    border:1px solid #000;
    top:50%;
    }
    div#content {
    border:1px solid #000;
    position:relative;
    top:-50%;
    }</pre>
    </div>
    </div>
    </div>
    </body>
    </html>

  • 相关阅读:
    安卓小助手
    位图切割器&位图裁剪器
    OAuth2.0 的简介
    多账户的统一登录方案
    常用的一些SQL语句
    SQL语句的优化
    SpringCloud简介与5大常用组件
    数据库为什么需要锁机制?有哪些锁机制?
    高并发下如何优化能避免服务器压力过大?
    Spring MVC 简介
  • 原文地址:https://www.cnblogs.com/qinxuemei/p/3981579.html
Copyright © 2011-2022 走看看