整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

设置div高度等于动态宽度

目中有时候会遇到这个问题:一行有3个div,希望这3个div平分屏幕宽度,并且高度等于宽度。

第一个问题:平分屏幕宽度

可以对div设置百分比宽度,而不是直接用px宽度,这里用到了响应式设计的思想,可以参考这篇文章:自适应网页设计(Responsive Web Design)

第二个问题:动态设置高度和宽度一致

有两种方法,一种是用js动态设置,一种是直接用CSS设置

先看下html代码

<ul>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

公用的CSS

ul,li{

list-style: none;

}

* {

margin: 0;

padding: 0;

outline: 0

}

body {

margin: 0;

padding: 0;

-webkit-appearance: none;

font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

font-size: 16px;

}

ul{

margin:10px;

}

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

用js动态设置

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

$(window).resize(function() {

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

用CSS设置

.dummy {

padding-top: 100%; /* 1:1 aspect ratio */

width: 100%;

background: #333333;

}

  • 1
  • 2
  • 3
  • 4
  • 5

CSS设置padding-top的原理:Use CSS to Specify the Aspect Ratio of a Fluid Element

/———————————————————

然后尝试对图片设置高度等于动态宽度

js方法很简单,跟上面的方法基本相同

<ul>

<li class="container">

<img src="images/test_1.jpg"/>

<div class="element">

some text

</div>

</li>

<li class="container">

<img src="images/test_2.jpg"/>

<div class="element">

some text

</div>

</li>

<li class="container">

<img src="images/test_3.jpg"/>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

.container img{

width: 100%;

height:100%;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

$(window).resize(function() {

var cw = $('.dummy').width();

$('.dummy').css({'height':cw+'px'});

});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

CSS方法

<ul>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

<li class="container">

<div class="dummy">

</div>

<div class="element">

some text

</div>

</li>

</ul>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

.container {

display: inline-block;

position: relative;

width: 32%;

text-align: center;

}

.dummy{

padding-top: 100%; /* 1:1 aspect ratio */

width: 100%;

background:url(images/test_3.jpg) no-repeat;

-webkit-background-size: 100%;

background-size: 100%;

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

通过设置background可以实现。

div包含img的方法没有试验成功,以后继续尝试

/————————————-

还有一个问题,怎么设置div和img之间的padding,又能保证div宽度是屏幕宽度的三分之一?

TML ul li 横排居中排列的方法,三步骤及实例

ul li 横排居中排列的方法

无序列表的列表项默认情况下是竖着排的,因为li元素是块级元素,会自动分行。那如果要将列表的列表项进行横排,比用无序列表ul元素定义一个导航条。那该怎么办呢?这当中有三个应当被解决的东西,一个是横排本身,另一个就是应当把无序列表项的圆点去掉,第三则是让ul定义的列表居中显示,包括水平居中和垂直居中。方法如下:

HTML ul li 横排居中排列的方法,三步骤及实例

ul li横排的方法

将ul无序列表元素中的列表项li元素的display属性设置成inline或inline-block,个人比较常用的是后者:

ul li{display:inline-block;}

ul水平居中和垂直居中的方法

水平居中方法:只要将ul元素包含于一个div元素,并将div元素的text-align属性设置为center即可将ul水平居中。除此之外,因为ul的列表默认情况下是有左内边距的,所以,为了能够让列表能够更好地水平居中,需要将ul的左内边距padding-left设置为0,具体可见下方的综合实例。

垂直居中方法:为包含ul元素的div元素设置宽度width和高度height(实际上导航条一般也需要有宽度和高度的设置),然后将ul的line-height属性设置为父元素的高度height即可。

去掉圆点的方法

将ul元素的list-style属性设置为none即可。

HTML ul li 横排居中排列的方法,三步骤及实例

ul li 横排居中排列综合实例代码,及在线编辑器

<div class='e1'>
  <ul class='e2'>
    <li>HTML</li>
    <li>python</li>
    <li>golang</li>
  </ul>
</div>

<style>
  .e1{width:100%;height:50px;border:1px solid skyblue;text-align:center;}
  .e2{list-style:none;padding-left:0%;}
  .e2 li{line-height:50px;display:inline-block;}
</style>

HTML+CSS+JS实例在线编辑器:

HTML ul li 横排居中排列的方法,综合实例在线 - HTML教程

实例代码解析

如上代码,一定要将ul的左内边距padding-left设置为0,否则ul列表的“水平居中”将偏向右边,大家可以将.e2中的padding-left删除掉,然后再在线运行看一看效果。

python全栈:

笨鸟工具-璞玉天成,大器晚成

习HTML时有时候我们需要用代码设置边框或虚线边框的样式,那该怎么设置呢?下面上海非凡进修学院HTML5开发培训机构大咖分享下html虚线边框设置教程,会对几个不同标签加虚线边框效果样式,同学们可以根据示例灵活掌握与应用到自己DIV+CSS布局中。

为了对html不同标签加边框虚线,我们选择几个常用标签对齐设置边框虚线效果。

1、html常用标签

div标签

span

ul li

table tr td

2、实例用到CSS属性单词

border

width

height

3、实现虚线的CSS重点介绍

border为边框属性,如果要实现对象边框效果,要设置边框宽度、边框颜色、边框样式(实线还是虚线)

border:1px dashed #F00 这个就是设置边框样式宽度为1px,虚线,虚线为红色。

4、实例描述

我们对以上几个标签设置相同宽度、相同高度、边框效果。

5、HTML代码示例:

以上示例对html中不同标签设置相同的样式,包括相同边框虚线。

上海HTML5开发培训机构大咖提示边框三个样式

通常我们可以对边框设置宽度(厚度)、边框样式、边框颜色这三个属性与参数。

1)、边框颜色:border-color:#000

2)、边框厚度(宽度):border-width:1px

使用数字+单位设置边框厚度宽度,如1px(边框厚度宽度为1像素),边框必须为正数字,大于0的数值。否则设置边框border样式无效。

3)、border边框样式:border-style:solid

上海HTML5开发培训机构大咖提示:边框border样式值如下:

none :无边框。与任何指定的border-width值无关

hidden : 隐藏边框。IE不支持

dotted : 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为点线。否则为实线(常用)

dashed : 在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为虚线。否则为实线(常用)

solid :实线边框(常用)

double : 双线边框。两条单线与其间隔的和等于指定的border-width值

groove : 根据border-color的值画3D凹槽

ridge :根据border-color的值画菱形边框

inset : 根据border-color的值画3D凹边

outset : 根据border-color的值画3D凸边