子曰:学好百分值,考试考百分

首先是确定CSS 中的percentage 都可以应用在CSS 中的哪些属性,以及这些属性的值如何进行计算的,参考CSS 参考手册进行统计。

定位(Positioning)

  1. top

    用百分比来定义距离顶部的偏移量。百分比参照包含块的高度。可以为负值。
  2. right

    用百分比来定义距离右边的偏移量。百分比参照包含块的宽度。可以为负值。
  3. bottom

    用百分比来定义距离底部的偏移量。百分比参照包含块的高度。可以为负值。
  4. left

    用百分比来定义距离左边的偏移量。百分比参照包含块的宽度。可以为负值。

尺寸与补白(Dimension)

  1. width

    用百分比来定义宽度。百分比参照包含块宽度。不允许负值。
  2. min-width

    用百分比来定义最小宽度。不允许负值。
  3. max-width

    用百分比来定义最大宽度。不允许负值。
  4. height

    用百分比来定义高度。百分比参照包含块高度。不允许负值。
  5. min-height

    用百分比来定义最小高度。不允许负值。
  6. max-height

    用百分比来定义最大高度。不允许负值
  7. margin

    用百分比来定义外补白。水平(默认)书写模式下,参照其包含块的width进行计算,其它情况参照height,可以为负值。
  8. padding

    用百分比来定义内补白。水平(默认)书写模式下,参照其包含块的width进行计算,其它情况参照height,不允许负值。

背景与边框(Backgrounds and Borders)

  1. border-radius

    用百分比定义圆形半径或椭圆的半长轴,半短轴。水平方向百分比参照元素宽度(非内容宽度),垂直方向参照元素高度。不允许负值。
  2. border-image-width

    用百分比指定图像边框的厚度。参照图像边框区域的大小(包含border和padding)进行换算。不允许负值。
  3. background-position

    用百分比指定背景图像在元素中出现的位置。可以为负值。参考容器尺寸减去背景图尺寸进行换算。
  4. background-size

    当属性值为百分比时,参照背景图像的background-origin区域大小进行换算(而不是包含块大小)。

字体(Font)

  1. font-size

    用百分比指定文字大小。其百分比取值是基于父对象中字体的尺寸。不允许负值。

文本(Text)

  1. word-spacing

    用百分比指定单词间隔。可以为负值。(CSS3)。
  2. text-indent

    用百分比指定文本的缩进。可以为负值。
  3. vertical-align

    把当前盒提升(正值)或者降低(负值)这个距离,百分比相对line-height计算。当值为0%时等同于baseline。
  4. line-height

    用百分比指定行高,其百分比基于文本的font-size进行换算。不允许负值。
  5. text-size-adjust

    用百分比来指定文本大小在设备尺寸不同的情况下如何调整。

伸缩盒(Flexible Box)(新)

  1. flex-basis

    用百分比来定义宽度。不允许负值。

变换(Transform)

  1. transform-origin

    用百分比指定坐标值。可以为负值。
  2. perspective-origin

    用百分比指定透视点坐标值,相对于元素宽度。可以为负值。

总结

  1. 定位中的toprightbottomleft 值为百分比时,都是参考包含块同方向的widthheight 进行计算值
  2. 尺寸与补白中的height*-heightwidth*-width 值为百分比时,也是参考包含块同方向的widthheight 进行计算值
  3. 而尺寸与补白中的paddingmargin,则是水平(默认)书写模式下,参照其包含块的width进行计算,也就是说同书写的方向相同。(大概是由于padding 是同内容相关的,同时没有 继承性,在同一书写方向上便于计算值)
  4. 字体中的font-size则是基于父对象中字体的尺寸(大该是由于font-size 有继承性)
  5. 文本中的text-indent 也是基于包含块的width 进行计算的,(推测是同书写方向相同,经验证确实是,当设置writing-modevertical-lr 时,是基于包含块的height 进行计算的)
  6. 文本中的line-height 基于font-size 进行计算,而vertical-align 则是基于line-height 进行计算的。
  7. 背景与边框中的background-position 则是基于容器尺寸减去背景图尺寸进行换算(是这么理解的,因为值为50% 时,使得图像居中,也就是)
`background-position` = (容器尺寸-背景尺寸)/2
  1. 背景与边框中的background-size 则是基于background-origin区域大小(很容易将一个图进行放大或缩小,下面两个图,分别是设置为50% 和33.3333% 的效果)



  2. 变换中的transform-origin 值为百分比时,横坐标参考元素的宽度,纵坐标参考元素的高度

一日一练-CSS CSS中percentage百分值的使用的更多相关文章

  1. 说说CSS学习中的瓶颈

    虽已数年,但未就学习专门写过文章,这回破处了.苍蝇不叮没有缝隙的鸡蛋,领导不做没有跟拍的表演,同样,想到写CSS学习的文章也是有原因的(虽然我的不少行为没有原因). 情景再现(尊重隐私,下面故事中人名 ...

  2. CSS学习中的瓶颈期深入分析

    虽已数年,但未就学习专门写过文章,这回破处了.苍蝇不叮没有缝隙的鸡蛋,领导不做没有跟拍的表演,同样,想到写CSS学习的文章也是有原因的(虽然我的不少行为没有原因). 情景再现(尊重隐私,下面故事中人名 ...

  3. 算警示吧——此文来自张鑫旭(说说CSS学习中的瓶颈)

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2523 虽已数年,但未 ...

  4. DIV+CSS布局中主要CSS属性介绍

    Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...

  5. CSS布局中的水平垂直居中

    CSS布局中的水平垂直居中 各位好,先说两句题外话.今天是我开通博客园的博客第一天,虽然我申请博客园的账号已经有一年半了,但是由于各种原因迟迟没有开通自己的博客.今天非常有幸开通博客,在此也写一篇关于 ...

  6. 怎样将多个CSS文件导入一个CSS文件中

    问题: 在HTML中引入css的其中的两个方法:    导入式和链接式的目的都是将一个独立的css文件引入一个文件中,二者的区别不大,事实上,二者最大的区别在于链接式使用html的标记引入外部css文 ...

  7. DIV CSS布局中position属性用法深入探究

    本文向大家描述一下DIV CSS布局中的position属性的用法,position属性主要有四种属性值,任何元素的默认position的属性值均是static,静态.这节课主要讲讲relative( ...

  8. 认识和理解css布局中的BFC

    认识和理解css布局中的BFC BFC的定义 是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用. Block Formatting Con ...

  9. CSS/CSS3中的原生变量var详解以及布局响应式网页扩展

    使用语法 首先我们先来看一个例子:html代码: <div class="element">这是一段文字</div> css代码: .element { w ...

随机推荐

  1. 【Python】 http客户端库requests & urllib2 以及ip地址处理IPy

    requests requests是个HTTPClient库,相比于urllib,urllib2等模块比更加简洁易用 ■ get请求 作为示例,讲一下关于requests如何发起并处理一个get请求 ...

  2. 内部办公网与IDC机房的GRE隧道配置实践

    背景 公司内网与机房服务器为了实现用内网IP通信的功能,故使用了linux的IP gre隧道的方式.使得公司内部可以直接通过路由直连的方式访问机房服务器. 拓扑图如下: 注:拓扑中的外网IP为虚构的I ...

  3. C语言的输入输出操作函数小结

    一.scanf()&printf()函数 scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕).  scanf()函数原型为int ...

  4. RabbitMQ 通信过程

    Rabbit MQ的通信过程 MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,是消费-生产者模型的典型的代表,producer往消息队列中不断写入消息,而另一端consume ...

  5. Redis一次数据丢失(转)

    一台Redis服务器,4核,16G内存且没有任何硬件上的问题.持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数.而就是这台主机,在一次重起之后,丢失了大量的数据,14G的 ...

  6. HA集群heartbeat配置--Nginx

    HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,两台机器A和B,正常是A提供服务,B待命限制,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用实现高可 ...

  7. Java基础学习笔记一 Java介绍

    java语言概述 Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. Java的应用 开发QQ.迅雷程序(桌面应用软件) 淘宝.京东(互联网应用软件) 安 ...

  8. configparser 练习

    [kaixin]xxx = 333name = hahheh = 0[erick]age = 123555xxx = ooo555name = hah555 1 import configparser ...

  9. fread函数详解

    函数原型: size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   )    b ...

  10. Android广播发送失败

    现在至今为止Android 8.0 不支持大部分广播收发 如果无法使用建议换至Android 7.0版本 且 minSdkVersion 24