1.宽高百分比

  • 元素宽度/高度百分比是基于父级元素的width/height,不包含padding,border
  • 注意:高度百分比一定要求父元素有设置height属性,只设置 min-height 虽然父元素会有高度,单子元素使用百分比无法继承
.box {
width: 400px;
height: 200px;
padding: 20px;
background-color: red;
} .item {
width: 100%;
height: 100%;
background-color: blue;
}
<div class="box">
<div class="item">item元素的width为400px 高度为200px</div>
</div>
  • 如果父级元素box-sizing: border-box,子级元素大小的百分比基于父级真正的大小,即除去padding,border之后的大小
.box {
width: 400px;
height: 400px;
padding: 20px;
background-color: red;
box-sizing: border-box;
} .item {
width: 100%;
height: 200px;
background-color: blue;
}
<div class="box">
<div class="item">父级box的宽度被padding占用40px,item元素的宽度只剩360px</div>
</div>

2.定位元素的宽高百分比

  • 子级定位元素的宽100%=父级定位元素width+padding的大小
  • 子级定位元素的高100%=父级定位元素height+padding的大小

注意的是:这里继承的并非是直接的父元素,而是父级定位元素,如果直接父元素没有定位 ,则继续查找更上一级的父元素,直到找到有定位的父元素或者body为止

.box {
width: 400px;
height: 200px;
padding: 20px;
background-color: red;
position: relative;
border: 10px solid #ccc;
margin: 50px;
} .item {
width: 100%;
height: 100%;
background-color: blue;
position: absolute;
top:0;
left:0;
}
<div class="box">
<div class="item">item元素的width=440,item元素的height=240</div>
</div>

如果父元素是怪异盒模型,则父元素的width按实际的来计算

3.padding和margin百分比

子元素的padding和margin都是基于父元素的宽度

#box{
width: 500px;
}
#box > div{
width: 300px;
padding-left: 10%;
margin-left: 10%;
}
<div id="box">
<div></div>
</div>
$(function() {
console.log($('#box>div').css('paddingLeft'));//50px
console.log($('#box>div').css('marginLeft'));//50px
})

4.line-height百分比

line-height设置百分比是基于当前字体大小,默认值为100%

#box{
font-size: 20px;
line-height: 100%;
} <div id="box"></div>
$(function(){
console.log($('#box').css('lineHeight'));//20px
})

CSS 样式百分比的更多相关文章

  1. CSS样式常用属性整理

    web工程师是最近5年刚刚兴起的一门高薪职业,人们的专注度越来越高. 那么前端除了学习html标签之外还需要掌握什么知识点呢? 为大家整理了一个和HTML标签密不可分的知识要点--<CSS样式常 ...

  2. CSS样式表(三)

    前端人员在学习开发过程中常用的CSS样式总结: [margin] margin 检索或设置对象四边的外延边距 margin-top 检索或设置对象顶边的外延边距 margin-right 检索或设置对 ...

  3. [HTML/HTML5]2 CSS样式表设置

    2.1  在HTML文件中设置样式表 当前HTML"规则"指出:HTML仅用于标识页面的内容,应该使用样式表来定义内容的呈现样式.这不仅使Web页面对于所有用户(无论采用什么浏览器 ...

  4. 用原生JS读写CSS样式的方法总结

    为了日后方便查询,本人翻阅了一些资料总结了以下方法,仅限原生JS,如有不对的地方欢迎指出!只求大家看完觉得有学到点什么就OK了!   一.可以通过DOM节点对象的style对象(即CSSStyleDe ...

  5. CSS样式----图文详解(二):css属性

    主要内容 CSS的单位 字体属性 文本属性 背景属性 列表属性 盒子模型 定位属性:position.float.overflow.z-index等 导航栏的制作 鼠标的属性cursor 滤镜的介绍 ...

  6. bootstrap学习总结-css样式设计(一)

    由于项目需要,所以打算好好学习下bootstrap框架,之前了解一点,框架总体不难,但涉及到的东西还是很多,想要熟练掌握它,还是要多练练. 一:bootstrap是什么? bs是什么?  即前端页面搭 ...

  7. HTML前端——CSS样式

    使用CSS样式的方式: HTML<!DOCTYPE> 声明标签 内链样式表<body style="background: green; margin: 0; paddin ...

  8. 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作

    HTML中引入CSS样式的方式有三种: 1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:<link href="css/style.css" rel=" ...

  9. PHP.9-HTML+CSS(三)-CSS样式

    CSS样式 CSS是Cascading Style Sheets的简写,它除了可以轻松设置网页元素的显示位置和格式处,甚至还能产生滤镜,图像淡化,网页淡入淡出的渐变效果.CSS就是要对网页的显示效果实 ...

  10. HTML CSS样式基础

    一.css 1.什么是css? Cascading Style Sheet 级联样式表 改变样式的一个工具,说白了,就是为了让我们的页面好看, HTML底层封装了css这样一个工具. 2.怎么使用cs ...

随机推荐

  1. Angular 18+ 高级教程 – Angular 的局限和 Github Issues

    前言 Angular 绝对有很多缺陷,Issue 非常多,workaround 非常多. 我以前至少有 subscribe 超过 20 个 Issues,几年都没有 right way 处理的. An ...

  2. TypeScript 高级教程 – TypeScript 类型体操 (第三篇)

    前言 在 第一部 – 把 TypeScript 当强类型语言使用 和 第二部 – 把 TypeScript 当编程语言使用 后, 我们几乎已经把 TypeScript 的招数学完了. 第三部就要开始做 ...

  3. Cookie——基本使用

    Cookie 基本使用      Cookie 原理 Cookie 使用细节 Cookie jsp中获取Cookie

  4. QT网络编程之如何使用QT6框架QTcpServer和QTcpSocket网络编程实现变长数据包收发:以用户注册和登录为实例讲解

    QT网络编程之如何使用QT6框架QTcpServer和QTcpSocket网络编程实现变长数据包收发:以用户注册和登录为实例讲解 简介 本文将介绍如何使用QT6框架QTcpServer和QTcpSoc ...

  5. Hugging Face 论文平台 Daily Papers 功能全解析

    文/ Adeena, 在快速发展的研究领域,保持对最新进展的关注至关重要.为了帮助开发者和研究人员跟踪 AI 领域的前沿动态,Hugging Face 推出了 Daily Papers 页面.自发布以 ...

  6. bfs 与优先队列————洛谷p1126(历经两个小时总算AC了,哭晕)

    机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径 \(1.6\) 米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个 \(N\tim ...

  7. 【赵渝强老师】Redis案例分析:用setbit统计活跃用户

    一.需求背景 首先,我们来看一下需求:网站统计用户登录的次数,具体如下: 网站有1亿个用户,有经常登录的,也有不经常登录的 如何来记录用户的登录信息 如何查询活跃用户:比如:一周内,登录3次的 二.使 ...

  8. C# 的空类型

    // 空类型 null int iii; // 默认 0 bool bbb; // 默认 false bool? b; // 空值 null int? i; // 空值 null string str ...

  9. kotlin更多语言结构——>解构声明

    解构声明 有时把一个对象 解构 成很多变量会很方便,例如: val (name, age) = person 这种语法称为 解构声明 .一个解构声明同时创建多个变量.我们已经声明了两个新变量:name ...

  10. myBatis插入操作获取不到返回的自增id问题

    myBatis插入操作后想返回自增 id 有多种方式 其中一种使用率较高的就是: 在<insert></insert> 标签中添加 useGeneratedKeys 和 key ...