CSS格式化排版

文字排版可以通过CSS修改字体、字号颜色等,让UI效果Perfect。话不多说,先看字体样式,顺从自己内心深处,忠于自己选了华文行楷字体,代码块示例如下:

①p{font-family:"华文行楷"}<p>一行白鹭上青天</p>/*********上面示例不成功,下面示例没问题,注意:下面第一种方法比第二种方法兼容性更好一些。********/现在一般网页喜欢设置“微软雅黑”,如下代码:②
body{font-family:"Microsoft Yahei";}
或
body{font-family:"微软雅黑";}然而①的字体效果并没什么卵用,这是为什么呢?经过测试发现微软雅黑字体就没问题,原因出在这里:window系统预装字体里面并没有华文行楷!!!前端兼容性的问题这里就可以开始考虑了,并不是所有的电脑都默认安装了开发者设置的字体,在使用时要谨慎。这里的设置字体与Android开发比较,Android控件typeface属性并没有公开,但是提供方法设置,字体放在access里面,所有手机都支持了。

设置文字的字体颜色和大小通过一下属性

//color可以用#*** 、#******、Color.* 等多种形式表示,稍后还会有提到。
font-size:12px;color:#666

设置文字加粗属性

font-weight:bold;

设置文字斜体属性

font-style:italic; //英文不好是个硬伤,抽个时间一定去深造一下,italic:斜体字,看了音标第一时间想到的是泰坦里克( ̄▽ ̄)"

设置文字下划线和删除线属性(Android通过获取画笔来设置下划线和删除线)

span{text-decoration:underline;}
.oldPrice{text-decoration:line-through;}

中文文字中的段前习惯空两个文字的空白,这个特殊的样式可以用下面代码来实现

p{text-indent:2em;}  //indent:缩进2em的意思就是文字的2倍大小。

设置行间距属性

p{line-height:1.5em;}

中文字间隔、字母间隔设置:

 letter-spacing:50px; //本应该是中文字间隔,这个样式使用在英文单词时,是设置字母与字母之间的间距word-spacing:50px; //英文单词直接的间隔效果图如下

设置段落对齐方式属性

 text-align:center;

以上段落文字排版的使用不必死记硬背,每个属性可能对应多个值,比如text-align:left,只需要了解大概的属性有哪些,在以后工作中开发使用的IDE编辑器或其他编辑器会有自动提示,用的次数多了自然就记住了。


CSS盒模型

在CSS中,html中的标签元素大体被分为三种不同的类型:

  • 块状元素
常用的块状元素有:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
  • 内联元素(又叫行内元素)
常用的内联元素有:<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
  • 内联块状元素。
常用的内联块状元素有:<img>、<input>

三大元素之间是可以转换的,比如内联元素a标签转换为块状元素设置display:block就将元素显示为块级元素,块级元素特点:

1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

2、元素的高度、宽度、行高以及顶和底边距都可设置。

3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

块状元素div转换为内联元素display:inline即可。内联元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度及顶部和底部边距不可设置;

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),img、input标签就是这种内联块状标签。

inline-block 元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度、行高以及顶和底边距都可设置。

下面是内联块状元素的示例、效果图:

盒模型是什么呢?下面先通过一幅图(两个盒模型)来形象理解

盒模型的宽度= 边框*2+(paddingleft)+(paddingright)+内容宽度

盒模型高度= 边框*2+paddingTop+paddingBottom+内容高度

注意:以上只是正对上图效果,如果遇到像Android 滑动列表的盒模型就不是这么回事儿了

盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细、样式和颜色(边框三个属性)。

如下面代码为 div 来设置边框粗细为 2px、样式为实心的、颜色为红色的边框:

div{border:2px  solid  red;
}

上面是 border 代码的缩写形式,可以分开写:

div{border-width:2px;border-style:solid;border-color:red;
}

注意:

1、border-style(边框样式)常见样式

|dashed(虚线)| dotted(点线)| solid(实线)

2、border-color(边框颜色)中的颜色可设置为十六进制颜色

border-color:#888;

3、border-width(边框宽度)中的宽度

thin | medium | thick(但不是很常用),最常还是用象素(px)。

下面是边框相关的示例代码和效果图


如果有想为 p 标签单独设置下边框,而其它三边都不设置边框样式怎么办呢?css 样式中允许只为一个方向的边框设置样式:

div{border-bottom:1px solid red;}

CSS布局模型

CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。
在网页中,元素有三种布局模型:

  • 流动模型(Flow)
网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。流动布局模型具有2个比较典型的特征:块状元素都会在所处的包含
元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为"100%",实际上,块状元素都会以行的形式占据位置。
在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)
  • 浮动模型 (Float)
块状元素都是独占一行,如果现在我们想让两个块状元素并排显示,设置元素浮动就可以实现。float:left;// float:right;
  • 层模型(Layer)
层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,CSS定义了一组定位(positioning)属性来支持层布局模型,层模型有三种形式:1、绝对定位(position: absolute)2、相对定位(position: relative)3、固定定位(position: fixed)

绝对定位通过下例代码和效果图来体味个中滋味

#div1{width:200px;height:200px;border:2px red solid;/*float:right;*/position:absolute;left:100px;bottom:100px;right:100px;
}下面是相关效果图:

#div1{width:200px;height:200px;border:2px red solid;/*float:right;*/position:absolute;/*left:100px;*/bottom:100px;right:100px;
}再看这个注释掉了左侧距离,效果图如下(这里为什么没出现导航呢,知道的还请不吝赐教)

相对定位也通过下图图解来帮助理解

#div1{width:200px;height:200px;border:2px red solid;position:relative;left:100px;top:50px;}

fixed:表示固定定位,与absolute定位类型类似,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,下面对比fixed与absolute效果图理解。

1.absolute效果图和css代码块

#div1{width:200px;height:200px;border:2px red solid;position:absolute;
}
pre{display:inline-block;position:absolute;top:200px;
}

2.fixed效果图和代码块

#div1{width:200px;height:200px;border:2px red solid;position:fixed;}
p{display:inline;position:absolute;left:18px;top:200px;width:200px;height:400px;
}

Relative与Absolute组合使用,自己慢慢实践体会吧。

CSS代码缩写,占用更少的带宽

外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左。具体应用在margin和padding的例子如下:

margin:10px 15px 12px 14px;/*上、右、下、左 这个与Android开发中的顺序就不通了,Android是左上右下*/

通常有下面三种缩写方法:

1、如果top、right、bottom、left的值相同,如下面代码:margin:10px 10px 10px 10px;可缩写为:margin:10px;2、如果top和bottom值相同、left和 right的值相同,如下面代码:margin:10px 20px 10px 20px;可缩写为:margin:10px 20px;3、如果left和right的值相同,如下面代码:margin:10px 20px 30px 20px;可缩写为:margin:10px 20px 30px;padding、border的缩写方法和margin是一致的

关于颜色的css样式也是可以缩写的,当你设置的颜色是16进制的色彩值时,如果每两位的值相同,可以缩写一半。(Android开发里面常看到颜色这样写#FFF ,然而和#FFFFFF一样的白色,不明其理,现在在这里找到答案了,呵呵..)

p{color: #336699;}可以缩写为:p{color: #369;}

网页中的字体css样式代码也有他自己的缩写方式,下面是给网页设置字体的代码:

body{font-style:italic;font-variant:small-caps; font-weight:bold; font-size:12px; line-height:1.5em; font-family:"宋体",sans-serif;
}缩写为一句:body{font:italic  small-caps  bold  12px/1.5em  "宋体",sans-serif;
}

注意:

1、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。

2、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。

一般情况下因为对于中文网站,下面缩写代码比较常用:

body{font:12px/1.5em  "宋体",sans-serif;
}

单位和值

设置颜色的方法也有很多种:

1、英文命令颜色

p{color:red;}

2、RGB颜色

这个与 photoshop 中的 RGB 颜色是一致的,由 R(red)、G(green)、B(blue) 三种颜色的比例来配色。

p{color:rgb(133,45,200);} //0-255或者0%-100%

3、十六进制颜色,这种颜色设置方法是现在比较普遍使用的方法,其原理其实也是 RGB 设置,但是其每一项的值由 0-255 变成了十六进制 00-ff。

p{color:#00ffff;}//简写 color:#0ff

经过这两天的学习,遇到了三个长度单位值:px、em、%(感觉比android好多了,px、sp、dp、不同手机分辨率不同转换值大小不同,适配各种机型,虽然有第三方库辅助适配兼容,但是个人赶脚还是挺让人不开心的)下面先来说说px与em吧

元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px;如果 font-size 为 18px,那么 1em = 18px。p{font-size:12px;text-indent:2em;}就是可以实现段落首行缩进 24px(也就是两个字体大小的距离)。font-size 设置单位为 em 时,此时计算的标准以 p 的父元素的 font-size 为基础:p{font-size:14px}span{font-size:0.8em;}结果 span 中的字体“例子”字体大小就为 11.2px(14 * 0.8 = 11.2px)。

百分比个人认为比较简单,无非就是一个值* x%.


css样式设置小技巧

水平居中设置-内元素怎么进行水平居中?通过给父元素设置 text-align:center.当被设置元素为 块状元素 时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素(定宽块状元素:块状元素的宽度width为固定值)和不定宽块状元素。定宽时:通过设置“左右margin”值为“auto”

 margin:20px auto;

不定宽的情况下可以采取下面三种方法:

加入 table 标签设置 display: inline 方法:与第一种类似,显示类型设为 行内元素,进行不定宽元素的属性设置设置 position:relative 和 left:50%:利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的

垂直居中-设置垂直居中又得分两种情况:父元素高度确定的单行文本,以及父元素高度确定的多行文本。
单行文本设置下面两个属性值相等就可以了(单行文本内容超出了范围就丑陋了)

 height:100px;line-height:100px;

父元素高度确定的多行文本、图片等的竖直居中的方法有两种:

方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。 td 标签默认情况下就默认设置了 vertical-align 为 middle

方法二:在 chrome、firefox 及 IE8 以上的浏览器可以设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式,

当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

  1. position : absolute

  2. float : left 或 float:right

元素的display显示类型就会自动变为以 display:inline-block(块状元素)的方式显示,就可以设置元素的 width 和 height 了,且默认宽度不占满父元素。


小结

在慕课网上学习HTML/CSS基础篇就基本完成了,收获良多!!特别是与Android有关的颜色值缩写和position运用。开发工具做为接下来的任务,DW工具个人以前用过,让我没有那种程序员的感觉,Sublime也玩过几分钟,感觉挺不错的,可以装插件玩特效,还可以编辑vim(git github会用到),所以下篇准备学习Sublime 为后续前端编码开发做好准备..

前端学习CSS篇(三)相关推荐

  1. 前端之CSS篇(三)——CSS三大特性及盒子模式和边距边框

    1.CSS的三大特性 CSS有三个非常重要的三个特性:层叠性.继承性.优先性 1.1 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式.层叠性主要解决样式冲突的问题. ...

  2. HTML,css和JavaScript的基础学习—css篇

    HTML,css和JavaScript的基础学习-css篇 1.css是什么?由什么组成? 层叠样式表,定制html元素的显示样式,美化页面,对于前端页面的搭建十分重要. 由三部分组成:选择器,属性, ...

  3. homeassistant mysql_学习笔记 篇三:HomeAssistant学习笔记docker安装的ha更换数据库

    学习笔记 篇三:HomeAssistant学习笔记docker安装的ha更换数据库 2018-11-15 12:06:58 4点赞 18收藏 3评论 是返乡过年?还是就地过年?最新一届#双面过节指南# ...

  4. 树莓派可以移动linux,树莓派学习笔记 篇三:树莓派4B 与移动存储设备的那些事儿...

    树莓派学习笔记 篇三:树莓派4B 与移动存储设备的那些事儿 2019-11-24 23:03:55 39点赞 286收藏 14评论 本文是「树莓派学习笔记」系列的第三篇,将学习下 Linux 系统分区 ...

  5. 【前端学习笔记】(三)(CSS基础、选择器、字体和文本样式)

    目录 一.基础认知 1.1 CSS介绍 1.2 CSS语法规则 1.3 CSS常见属性 1.4 CSS引入方式 1.5 CSS常见三种引入方式的区别 二.基础选择器 1.标签选择器 2.类选择器 3. ...

  6. WEB前端学习:CSS学习_用户界面样式

    用户界面样式 文章目录 用户界面样式 一.鼠标样式 二.轮廓 三.防止文本域拖拽 四.去除图片底侧空白间隙 五.溢出文字隐藏 1. work-break 2. white-space 3. text- ...

  7. 后端码农谈前端(CSS篇)第一课:CSS概述

    一.从扮演浏览器开始 扮演浏览器是Head First图书中很有意义的一个环节.可作者忘记了告诉我们扮演浏览器的台本.我们从这里开始. 上图是webkit内核渲染html和css的流程图.从该图我们可 ...

  8. 后端码农谈前端(CSS篇)第三课:选择器

    一.选择器 1.ID选择器: 语法: 首先,ID 选择器前面有一个 # 号 - 也称为棋盘号或井号. 请看下面的规则: *#intro {font-weight:bold;} 与类选择器一样,ID 选 ...

  9. 重学前端学习笔记(三十六)--Flex 布局

    笔记说明 重学前端是程劭非(winter)[前手机淘宝前端负责人]在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入winter的专 ...

最新文章

  1. java object finalize_Java Object finalize() 方法
  2. [Yii Framework] Yii如何实现前后台的session分离
  3. activesync对应的COM口
  4. jQuery数据表和Java集成
  5. 在Saas发展的黄金时代里带你理解SaaS设计
  6. java ee jstl_Java EE之JSTL(下)
  7. 5G高频段频谱规划启动 大国博弈加剧
  8. 你还在用 Date?建议使用 LocalDateTime 了!
  9. 资源放送丨《高并发Oracle OLTP系统的故障案例分享》PPT视频
  10. 【Windows】DOS的常用命令
  11. dedecms安装kindeditor编辑器
  12. Linux命令之iconv命令
  13. 问卷调查页面的设计与实现
  14. python自动下载小说
  15. 修改上传资源积分c币教程指导
  16. 多线程面试题汇总(一)
  17. mysql rpc_启用mysql作用
  18. SPLAYER中文字幕乱码
  19. 4.3 期货每日早盘操作建议
  20. Lua基础入门—— 写出自己的魔兽世界插件

热门文章

  1. 不忍了!自己来搭建一个网盘
  2. 百万富翁——真正的四则计算器
  3. 大数据面前无隐私 到底谁才是老大哥
  4. Opencv实现Sift、Surf、ORB特征提取与匹配
  5. BIM模型文件下载——施工场地部署模型
  6. 小微企业——信贷政策分析
  7. TSC 标签打印机,使用TSPL指令,前端 jsp 调用打印二维码和文本标签的案例
  8. 云服务器上传文件怎么这么慢,百度云上传速度慢怎么办?教你如何加快百度云上传速度...
  9. java二重循环_java二重循环
  10. 深度学习入门论文(必看)