zoukankan      html  css  js  c++  java
  • 几个div在一行的三种方法

    在网页开发过程中总会有需求让几个div水平显示在一行,而正常情况下两个div默认是block,所以是不能显示在一行的,如下面显示:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
    div {
    height: 200px;
    200px;
    }
    .div-green {
    background-color: green;
    }
    .div-red {
    background-color: red;
    }
    </style>
    </head>
    <body>
    <h1>normal div</h1>
    <div class="div-green">div1</div>
    <div class="div-red">div2</div>
    </body>
    </html>

    上面代码执行的结果是:

    下面我来介绍一下把几个div水平显示在一行的几种方法。

    1. float

    这是最容易想到的方法,设置div的float属性,可以使div脱离文档流,水平显示在一行,代码如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
      body {
        margin: 100px;
      }
      div {
        height: 200px;
         200px;
      }
      .div-green {
        background-color: green;
      }
      .div-red {
        background-color: red;
      }
      .float-div {
        float: left;
      }
    </style>
    </head>
    <body>
      <h1>float div</h1>
      <div class="div-green float-div">div1</div>
      <div class="div-red float-div">div2</div>
    </body>
    </html>

     

    2.inline

    既然div是因为其是块状元素才不能显示在一行,那么将display属性改为inline-block不就可以使其水平显示在一行了吗

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
      body {
        margin: 100px;
      }
      div {
        height: 200px;
         200px;
      }
      .div-green {
        background-color: green;
      }
      .div-red {
        background-color: red;
      }
      .inline-div{
        display: inline-block;
      }
    </style>
    </head>
    <body>
      <h1>inline div</h1>
      <div class="div-green inline-div">div1</div>
      <div class="div-red inline-div">div2</div>
    </body>
    </html>

    显示结果如下图:

    3.flex

    flex和模型也是可以将两个div水平显示的,只要将div对应的父级元素的display属性设置为flex即可:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style>
      body {
        margin: 100px;
      }
      div {
        height: 200px;
         200px;
      }
      .div-green {
        background-color: green;
      }
      .div-red {
        background-color: red;
      }
      .flex-div{
        display: flex;
         auto;
      }
    </style>
    </head>
    <body>
      <h1>flex div</h1>
      <div class="flex-div">
      <div class="div-green">div1</div>
      <div class="div-red">div2</div>
      <div class="div-green">div3</div>
    </div>
    </body>
    </html>

    显示结果:

    与上面两种方法不同的是,上面两种方法是通过改变div自己的css来实现效果,而flex需要在父级设置display:flex,这点是需要注意的。

  • 相关阅读:
    【Unity游戏开发】Android6.0以上的动态权限申请问题
    【游戏开发】网络编程之浅谈TCP粘包、拆包问题及其解决方案
    【Unity游戏开发】你真的了解UGUI中的IPointerClickHandler吗?
    【Unity游戏开发】记一次解决 LuaFunction has been disposed 的bug的过程
    【年终总结】马三北漂记之8102年总结
    【小白学Lua】之Lua变长参数和unpack函数
    【计算机图形学】计算机图形学中的坐标系统
    【Unity游戏开发】tolua之wrap文件的原理与使用
    【游戏开发】基于VS2017的OpenGL开发环境搭建
    【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher
  • 原文地址:https://www.cnblogs.com/ycherry/p/7232695.html
Copyright © 2011-2022 走看看