由于有时候需要做网站项目,遇到CSS的问题总是需要百度或者google一下,比较麻烦,索性今天就来总结一下,这里就拿div开刀先。

DIV在HTML前端页面布局中,非常重要,我们经常遇到的问题是:DIV居中,DIV自适应高度等等,下面就来总结一下。

父DIV自动匹配子DIV高度的方法

方法一:使用固定的高度

 <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
        height:120px;    /*这里是方法一:我们直接设置父Div的高度为一个固定值。 */
    }
    
    .childClass1
    {
        float:left;
        width:200px;
        height:100px;
        background-color:Blue;
    }
    
    .childClass2
    {
        float:right;
        width:300px;
        height:110px;
        background-color:wheat;
    }
    
    </style>
 
HTML代码如下:
 
<div class="parentClass1">
    <div class="childClass1"></div>
    <div  class="childClass2"></div>
</div>
这种方法是通过设置父DIV的固定高度来实现,这种方法比较死板,当子DIV的内容高度发生变化的时候,很容易导致父DIV的高度溢出,所以是最不推荐使用的方式。
 

方法二:清除浮动

CSS代码如下:
 <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
    }
    
    .childClass1
    {
        float:left;
        width:200px;
        height:100px;
        background-color:Blue;
    }
    
    .childClass2
    {
        float:right;
        width:300px;
        height:110px;
        background-color:wheat;
    }
    
    .fitHeight
    {
        clear:both;
    }
    </style>
 
HTML代码如下:
<div class="parentClass1">
    <div class="childClass1"></div>
    <div  class="childClass2"></div>
    <div class="fitHeight"></div>
</div>


这种方式主要是通过清除浮动来实现父DIV自适应高度的,是一种比较好的解决方法,当子DIV高度进行变化的时候,父DIV的高度也随之变化,所以推荐使用。

方法三:通过OverFlow样式来解决

先看下CSS代码:

 <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
        overflow:hidden;  /*这里通过添加本样式,实现父DIV高度的自适应*/
    }
    
    .childClass1
    {
        float:left;
        width:200px;
        height:100px;
        background-color:Blue;
    }
    
    .childClass2
    {
        float:right;
        width:300px;
        height:120px;
        background-color:wheat;
    }
    </style>

然后再来看一下HTML代码部分:

<div class="parentClass1">
    <div class="childClass1"></div>
    <div  class="childClass2"></div>
</div>

在这里,我们通过设置父DIV的overflow属性为Hidden来进行高度的自适应,这种方式非常简便,效果也很理想,推荐使用。

DIV居中或者居底的方法

首先,我们这里说一下一个DIV怎么在页面中居中,这里不存在父子的概念,所以对这种居中效果,我们直接可以通过添加 margin: 0 auto;来实现,意思是让上下间隔为0,左右间隔自动,随着页面的宽度自动进行居中设置。

CSS代码如下:

   <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
         margin:0 auto;
         height:100px;
    }
    </style>

HTML代码如下:

  <div class="parentClass1"></div>

其次,我们说下如何让父DIV中的子DIV居中。在这里,效果其实和上面是一样的,也是直接添加margin: 0 auto;来实现,具体代码我就不具体赘述了。

那么如果让子DIV在父DIV的底部,该怎么设置呢?这里就比较麻烦一点,不过我们可以将父DIV设置为:position:relative,子DIV设置为:position:absolute;的方式来解决:

CSS代码如下:

 <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
        height:200px;
         margin:0 auto;
         position:relative;  /*父DIV需要设置为相对定位*/
    }
    
    .childClass1
    {
        width:200px;
        height:100px;
        background-color:Blue;
       position:absolute;  /*子DIV需要设置为绝对定位*/
       bottom:0;    /*加上这个属性,就可以实现子DIV移动到底部了*/
    }
    </style>

HTML代码如下:

  <div class="parentClass1">
    <div class="childClass1"></div>
  </div>
 

DIV最小高度及自适应方法

有时候我们在设计网页的时候,需要给DIV块一个最小高度,但是当DIV内部内容超过最小高度的时候,需要DIV能够随着高度的增加而增加。这个时候,我们就可以利用_height和min-height属性来解决。

下面是对二者说明:

_height:200px; /* css 注解: 仅IE6设别此属性,假定最低高度是200px ,设置高度200px,内容超出后IE6会自动撑高设定高度 */ 
min-height:200px; /* css注释: css最小高度为200px支持所有浏览器,IE6浏览器除外 */ 

CSS代码如下:

 <style type="text/css">
    .parentClass1
    {
        width:600px;
        border:1px solid red;      
         margin:0 auto;
         _height:200px;        /*添加上了_height和min-height属性,就限定了最小高度为200px*/
          min-height:200px;
          overflow:hidden; /*添加了这个属性,就可以保证当子DIV大于200px的时候,父DIV的高度能够随着子DIV的高度增加而增加*/
    }
    
    .childClass1
    {
        width:200px;
        height:100px;
        background-color:Green;
        float:left;
    }
        .childClass2
    {
        width:200px;
        height:330px;  /*这个子DIV的高度已经大于了200px*/
        background-color:Wheat;
        float:right;
    }
    </style>

HTML代码如下:

 <div class="parentClass1">
    <div class="childClass1">内容高度没有超过200px的时候,div的高度为200px</div>
    <div class="childClass2">内容高度超过200px的时候,div的高度自动适应</div>
 </div>

那么得到的结果如下图所示:

 


DIV相关的操作总结的更多相关文章

  1. linux下关于压缩、解压相关的操作

    本文转自: http://alex09.iteye.com/blog/647128 很不错的linux下关于压缩.解压相关的操作,适合于linux初学者.   .tar  解包:tar xvf Fil ...

  2. 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期

    [源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...

  3. 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作

    最近我做的一些项目,经常需要用到对应用程序的配置文件操作,如app.config和web.config的配置文件,特别是对配置文件中的[appSettings]和[connectionStrings] ...

  4. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  5. [git] commit 相关的操作

    本地仓库状态相关的操作 1.  git  commit 将从上次提交后到现在这段时间内,暂存区所有的变化提交到版本库中: git  commit  -m '此次提交操作的简要说明(单引号括起来)' c ...

  6. (笔记)Linux内核中内存相关的操作函数

    linux内核中内存相关的操作函数 1.kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) ...

  7. 封装Email相关的操作

    package com.opslab.util; import javax.activation.DataHandler;import javax.activation.DataSource;impo ...

  8. Java代码 简单用于处理和数据库相关的操作

    package util; import org.apache.commons.beanutils.BeanUtils; import java.lang.reflect.InvocationTarg ...

  9. day06-Python运维开发基础(字符串格式化与相关的函数、列表相关的操作)

    1. 字符串相关的操作与格式化 # ### 字符串相关操作 # (1)字符串的拼接 + var1 = "亲爱的," var2 = "男孩" res = var1 ...

随机推荐

  1. 让div中的table居中

    div 标签上写  style="text-align:center" div中的table中写 style="margin:auto;"  <table ...

  2. 解决Android SDK Manager 更新、下载慢以及待安装包列表不显示

    参考地址:http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html 问题描述: Android SDK Manager 无法下载更新,或 ...

  3. Maven学习遇到的第一个错误

    现在开始学习maven,我是在极客学院看的视频学习的,学习当然会遇到异常,下面是我遇到的第一个异常 [ERROR] Failed to execute goal org.apache.maven.pl ...

  4. Nuget~管理自己的包包~丢了的包包快速恢复

    之前写过一篇Nuget~管理自己的包包的文章,今天来讲Nuget的另一个东西,就是找回丢失的DLL,我们在引用包包后,在当前解决方案根目录就生成一个packages的目前,里面有我们从nuget下载的 ...

  5. 问题解决——使用GP-3120TN打印条形码标签

    终于大致的尝试出了参数和编程手册里指令的使用. 在这里,感谢佳博中一个叫做"Gprinter 陶玮"的工程师所提供的技术支持.非常感谢,如果没有你,在写这篇文章之前我可能换别的打印 ...

  6. CentOS下一键安装Openstack

    CentOS下一键安装Openstack 系统环境:Oracle VirtualBox 4.38CentOS-6.5-x86_64-bin-DVD1.iso 安装前需要修改 /etc/hosts文件, ...

  7. 20150912华为机考1之"输入一个字符串,将其中出现次数最多的字符输出"

    不吐槽华为的服务器了,直接上正文 输入:字符串(英文字母),长度不超过128 输出:出现频率最高的字母 思路写在注释文档 /* Input a string * Output the most fre ...

  8. redis 非集群的主从配置及切换

    单纯的master-slave不能称之为集群,只能叫做读写分离.此案例只针对master为单点服务,且程序端写死master为可写,slave为只读.若master宕机则不可用,若主从未开启持久化,不 ...

  9. xml in hadoop ETL with pig summary

    项目中需要把source为xml的文件通过flume放置到hdfs,然后通过MR导入到vertica中去,我之前做过简单的 尝试,是通过pig的piggybank的xmlloader然后Regex_e ...

  10. 基于Retrotfit2.1+Material Design+ijkplayer开发的一个APP(新闻,gif 动图,视频播放)

    此项目主要目的还是为了练习框架的使用,仅供学习用途. 数据来源 新闻 直接用的聚合数据提供的接口:https://www.juhe.cn/docs/api/id/235gif动图 通过jsoup爬的某 ...