整合营销服务商

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

免费咨询热线:

CSS设置宽高的小技巧

、css宽高自适应:

1.宽度自适应:

元素宽度设为100%(块状元素的默认宽度为100%)

注:应用在通栏效果中

2.高度自适应:

height:auto;或者不设置高度

3.最小,最大高度,最小,最大宽度:

a)最小高度 min-height:value;

IE6不识别min-height属性,解决方案如下:
 
方案一:min-height:100px; _height:100px;
 
方案二:min-height:100px; height:auto!important; height:100px;

b)最大高度:

max-height:value;

c)最大宽度:

max-width:value;

d)最小宽度:

min-width:value;

注:块状元素设置最小宽度时,需要将元素转换为内联块状元素,添加display:inline-block;

注:以上四个属性IE6及以下版本浏览器不支持

4.高度塌陷问题:

描述:子元素浮动,父元素高度自适应,造成父元素高度为0,简称高度塌陷问题

解决方案:

方案一:

给父元素添加overflow:hidden;
 
优点:简单,兼容性好
 
缺点:当有position:relative;出现时,会影响页面显示效果

方案二:

给父元素固定的高度 height:value;
 
缺点:不灵活,高度无法自适应

方案三:

在子元素的末尾添加一个空div,并设置样式
 
.clear{height:0; overflow:hidden;clear:both;}
 
优点:所有浏览器都支持
 
缺点:在页面中添加一个无意义的div,造成代码冗余

方案四:(万能清除浮动法,推荐使用)

通过伪元素的方式清除浮动

父元素:after{
 content:"";
 height:0;
 overflow:hidden;
 clear:both;
 display:block;
 visibility:hidden;
}

注:伪元素是内联元素,转换为块元素设置宽高才能生效

height:0;在IE6下不兼容,添加overflow:hidden;兼容IE6

二、元素隐藏不可见的两种方式(display:none;和visibility:hidden的区别)

1.display:none;元素隐藏不可见,位置不保留

2.visibility:hidden;元素隐藏不可见,位置保留

三、窗口高度自适应

首先,给html,body设置高度为100%

html,body{height:100%;}
 
然后给元素设置高度100%
 
div{height:100%}
 
注:常用于窗口内容不满一屏或者没有内容body高度为0时

四、水平居中和垂直居中:

1.行内元素水平居中设置

设置文本、图片等行内元素水平居中,给父元素设置text-align:center;

2.定宽块状元素水平居中设置

给定宽块状元素设置左右margin值为auto

注:当元素设置float或绝对定位,固定定位时,左右margin为auto失效

3.不定宽块状元素水平居中

方法一:

给父元素设置 {display:table;margin:0 auto;}

注: display:table;将元素转换为表格的形式

方法二:

子元素设置: {display:inline-block;}

父元素设置:{text-align:center;}

五、元素水平垂直都居中

1.未知宽高元素在屏幕窗口水平垂直都居中

方法一:

元素{
 
width:value;
 
height:value;
 
position:fixed;
 
left:50%;
 
top:50%;
 
margin-left:-width/2+px;
 
margin-top:-height/2+px;
 
}

方法二:

元素{
width:value;

height:value; 

position:fixed;

left:0;

top:0;

right:0;

bottom:0;

margin:auto;
}

2.未知宽高元素在父元素中水平垂直都居中

方法一:

元素{
 
width:value;
 
height:value;
 
position:absolute;
 
left:0;
 
top:0;
 
right:0;
 
bottom:0;
 
margin:auto;
 
}

方法二:

父元素{
 
width:value;
 
height:value;
 
display:table-cell;
 
vertical-align:middle;
 
text-align:center;
 
}

注:display:table-cell;将元素转换为表格单元格形式

题一: 一般在我们的认识里行内元素是不支持宽高的,如果要让其支持宽高,必须通过css显示的转换:display:block;可是所有的行内元素都不支持宽高吗?其实不然,来看下面的例子:

demo1

demo2

代码运行后我们发现input和img标签居然支持宽高,在我们的印象中input和img是行内元素(inline),是不支持宽高的,但是它们却有点特殊,原来它们是可替换元素!

html中的元素可分为替换元素和不可替换元素,替换元素本身是空元素,是由其属性来决定的,比如这里的input,通过type属性就可将其设置为文本框或单选按钮,img也一样,通过src元素可以来显示不同的图片,常见的有<img>、<input>、<textarea>、<select>,他们和一般的行内元素有区别,行内元素不支持宽高,而它们却支持width和height属性,如果没设置宽高,就显示默认的大小,比如img,就显示图片原来的尺寸。

不可替换元素比较常见,也就是块级元素(div,p,h1……)或一些行内元素(span,strong,a……),它们是直接显示元素内容,比如你什么时候见过div通过type来显示不同的东西?显然没有。


问题二:行内元素除了可替换元素外,比如span元素,一定要display:block;才可以支持宽高吗?其实也不然。且看下面例子:

或者这样设置也可以:

显然我并没有显示的设置span元素为block,但是同样能支持宽高,这里的原因是我css设置了span为position:absolute;或者float:left;让其具有包裹性,从而支持宽高,所以在你设置元素浮动或者绝对定位的情况下,设置元素display:block;就显得多余了。


Ps:如果喜欢,那就关注我吧!

*CSS基础-06-元素大小(设置元素尺寸height/width、最大值max-height max-width、最小值min-height min-width、设置行间距 line-height)**

在Web前端开发中,对元素大小的精确控制是构建美观且布局合理的网页界面的关键。CSS提供了丰富的属性来帮助我们实现这一目标,包括设置元素的宽高(`height`/`width`)、定义最大与最小尺寸(`max-height`/`max-width`和`min-height`/`min-width`),以及调整文本行间距(`line-height`)。本文将深入探讨这些属性的用法、应用场景及示例代码,助您掌握元素大小调整的核心技巧。

**一、设置元素尺寸:height与width**

**1.1 定义元素高度(height)**

**定义方式:**

```css

element {

height: value;

}

```

其中,`element`代表目标元素的选择器,`value`可以是以下几种类型:

- **绝对单位**:如像素(`px`)、厘米(`cm`)、毫米(`mm`)、英寸(`in`)、点(`pt`)等。

- **相对单位**:如百分比(`%`)、视口宽度(`vw`)、视口高度(`vh`)、字体大小(`em`)等。

- **关键字**:如`auto`(默认值,由内容决定高度)、`initial`(恢复初始值)、`inherit`(继承父元素的值)。

**示例代码:**

```html

<div class="box">

<p>这是一个高度为200px的盒子。</p>

</div>

<style>

.box {

background-color: #f8f9fa;

height: 200px; /* 设置固定高度 */

width: 300px; /* 设置固定宽度,便于观察效果 */

}

</style>

```

**1.2 定义元素宽度(width)**

**定义方式:**

```css

element {

width: value;

}

```

`width`属性的值同样支持绝对单位、相对单位及关键字,其使用方法和`height`相同。

**示例代码:**

```html

<div class="content">

<p>这是一个宽度为80%的自适应容器。</p>

</div>

<style>

.content {

background-color: #f8f9fa;

width: 80%; /* 设置宽度为父元素的80% */

margin: 0 auto; /* 居中显示 */

}

</style>

```

**二、设定元素最大/最小尺寸:max-height/max-width与min-height/min-width**

**2.1 最大高度/宽度(max-height/max-width)**

**定义方式:**

```css

element {

max-height: value;

max-width: value;

}

```

这两个属性用于限制元素的最大尺寸,当元素的实际尺寸超过设定值时,会自动调整到指定的最大值。值的类型与`height`和`width`相同。

**示例代码:**

```html

<div class="image-container">

<img src="large-image.jpg" alt="Large Image">

</div>

<style>

.image-container {

max-width: 100%; /* 图片最大宽度不超过父元素宽度 */

max-height: 500px; /* 图片最大高度不超过500px */

overflow: hidden; /* 隐藏超出部分 */

}

</style>

```

**2.2 最小高度/宽度(min-height/min-width)**

**定义方式:**

```css

element {

min-height: value;

min-width: value;

}

```

`min-height`和`min-width`用于确保元素的最小尺寸,当元素的实际尺寸小于设定值时,会强制扩展到指定的最小值。值的类型与`height`和`width`相同。

**示例代码:**

```html

<div class="sidebar">

<ul>

<li><a href="#">Link 1</a></li>

<li><a href="#">Link 2</a></li>

<!-- 更多链接 -->

</ul>

</div>

<style>

.sidebar {

background-color: #f8f9fa;

min-width: 200px; /* 侧边栏最小宽度为200px */

}

</style>

```

**三、设置行间距:line-height**

**3.1 定义行间距(line-height)**

**定义方式:**

```css

element {

line-height: value;

}

```

`line-height`属性用于设置元素内文本行之间的垂直间距。值的类型包括:

- **数值**:如`1.5`、`2`等,表示相对于当前字体大小的倍数。

- **绝对单位**:如像素(`px`)、厘米(`cm`)等。

- **百分比**:相对于元素本身的字体大小。

- **关键字**:如`normal`(默认值,浏览器默认行间距)、`initial`、`inherit`。

**示例代码:**

```html

<p class="loose-text">这是一段行间距为1.5倍的文本。</p>

<style>

.loose-text {

font-size: 16px;

line-height: 1.5; /* 设置行间距为字体大小的1.5倍 */

}

</style>

```

**四、实战应用与注意事项**

**4.1 响应式设计**

结合`max-height`/`max-width`、`min-height`/`min-width`与媒体查询(`@media`),可以轻松实现响应式布局,确保元素在不同屏幕尺寸下保持合适的大小。

**示例代码:**

```css

@media (max-width: 768px) {

.content {

width: 100%; /* 小于768px时,宽度占满屏幕 */

}

}

@media (min-width: 768px) and (max-width: 1200px) {

.content {

width: 75%; /* 768px至1200px之间,宽度为75% */

}

}

@media (min-width: 1200px) {

.content {

width: 50%; /* 大于1200px时,宽度为50% */

}

}

```

**4.2 注意事项**

- **`height`与`width`设置为`auto`时,元素的尺寸通常由其内容决定。对于块级元素,宽度默认为`auto`,高度则受内部内容影响;对于内联元素,宽度和高度均受内容影响。**

- **使用百分比单位时,`height`的百分比基于包含块的高度,而`width`的百分比基于包含块的宽度。**

- **在设置`min-height`时,确保包含块(父元素)具有足够的高度或自身元素具有足够的内容,否则可能无法达到预期效果。**

- **使用`line-height`时,注意与其他文本相关的属性(如`font-size`、`vertical-align`等)的配合,以保持良好的排版效果。**

通过熟练掌握上述CSS属性,您将能精准地控制网页中元素的大小,实现复杂多样的布局效果。不断实践并结合实际项目需求,您的前端开发技能将更上一层楼。