《CSS世界》读书笔记

CSS世界的诞生就是为图文信息展示服务的。

1. 流

"流"是CSS中一种基本的定位布局机制,它引导着HTML中元素的排列定位。HTML默认采用流体布局,我们也可以通过破坏"流"来实现特殊布局。默认的流向是从左向右、自上而下,但这种流向我们也是可以改变的。

1. 流体布局:

指的是利用元素"流"的特性实现的各类布局效果。因为"流"本身具有自适应特性,所以流体布局是具有自适应性的。(注意: 自适应布局是对具有自适应特性的一类布局的统称,它包括流体布局)

2. <table>标签

"流"的特性对<table>并不适用,因为它不属于CSS。

3. CSS3新特性:

① 布局更丰富:

  • 移动端的崛起,催生了CSS3媒介查询、许多响应式布局特性
  • 弹性盒子布局(flexible box layout)
  • 格栅布局(grid layout)

② 视觉表现长足进步:

  • 圆角、阴影和渐变让元素更有质感
  • transform变换让元素有更多可能
  • filter滤镜和混合模式让Web轻松变为在线的Photoshop
  • animation让动画变得简单

由于CSS3设计初衷是为了实现更丰富、更复杂的网页,所以基本上和"流"的关系并不大。

2. CSS的专业术语

  1. 属性 (height、color、width等)
  2. 值 (整数值、数值、百分比值、长度值、颜色值、字符串值、角度值、频率值、时间值等)
  3. 关键字 (transparent、solid、inherit等)
  4. 变量 (currentColor等)
  5. 长度单位 (相对字体长度单位:em、ex 相对视区长度单位:vh、vw、vmin、vmax 绝对长度单位:px等)
  6. 功能符 (rgba、hsla、url、calc、scale等)
  7. 属性值
  8. 声明、声明块
  9. 规则、规则集
  10. 选择器 (类选择器、ID选择器、属性选择器、伪类选择器、伪元素选择器、关系选择器: 后代选择器、相邻后代选择器、兄弟选择器、相邻兄弟选择器)
  11. @规则

3. 未定义行为

指的是规范顾及不到的细枝末节的实现,就称为"未定义行为"

如: firefox认为:active发生在mousedown事件之后,而IE/Chrome认为:active发生在mousedown事件之前。

4. 流、元素与基本尺寸

我们通常把HTML标签分为两类: 块级元素(block-level element)和内联元素(inline element)

知识点

1. 利用上下边框颜色的叠加实现凹陷效果

1
2
border-bottom: 1px solid #b70000;
border-top: 1px solid #de3636;

让我们分析一下为什么会这么神奇:

放大400%后的效果

原来是利用上下边框的颜色深浅差异,给人一种凹陷的错觉。

参考链接:http://demo.cssworld.cn/3/2-3.php

3.2 width/height作用的具体细节

3.2.1 深藏不露的 width:auto

width:auto 包含了4种不同的宽度表现:

  • 充分利用可用空间(块级元素的宽度默认100%于父级元素)
  • 收缩与包裹(收缩到合适)
  • 收缩到最小(文字能断就断: 中文随便断、英文单词不能断)
  • 超出容器限制(内容很长的连续的英文或数字、或者内联元素被设置了white-space:nowrap)

充分利用可用空间是唯一的外部尺寸, 其余都是内部尺寸, 而这唯一的外部尺寸,是的精髓所在。

让你的Android应用申请root权限

​在实际的Android开发中,我们开发的应用可能会需要申请root权限,但应该怎么样写这段代码呢?

这里提供一个申请root权限的类,方便大家使用~

让安卓模拟器具有root权限

​在实际Android开发过程中,某些待调试的应用可能需要root权限,但是AVD Manager默认创建的AVD是不带root权限的,这时候应该怎样才能才能root我们的AVD呢?

Emulator: libGL error: unable to load driver: i965_dri.so

在 Deepin 系统下使用Android Studio开发移动应用时,当使用模拟器调试时出现了以下报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
下午5:07	Emulator: libGL error: unable to load driver: i965_dri.so

下午5:07 Emulator: libGL error: driver pointer missing

下午5:07 Emulator: libGL error: failed to load driver: i965

下午5:07 Emulator: libGL error: unable to load driver: i965_dri.so

下午5:07 Emulator: libGL error: driver pointer missing

下午5:07 Emulator: libGL error: failed to load driver: i965

下午5:07 Emulator: libGL error: unable to load driver: swrast_dri.so

下午5:07 Emulator: libGL error: failed to load driver: swrast

下午5:07 Emulator: X Error of failed request: BadValue (integer parameter out of range for operation)

下午5:07 Emulator: Major opcode of failed request: 156 (GLX)

下午5:07 Emulator: Minor opcode of failed request: 24 (X_GLXCreateNewContext)

下午5:07 Emulator: Value in failed request: 0x0

下午5:07 Emulator: Serial number of failed request: 64

下午5:07 Emulator: Current serial number in output stream: 65

下午5:07 Emulator: Process finished with exit code 1

错误:找不到符号 符号:变量fab

在使用Android Studio开发Android应用的过程中碰到了如下错误:

1
2
3
Error:(21, 76) 错误: 找不到符号
符号: 变量 fab
位置: 类 id

原因:

深度启动盘制作工具无法识别出U盘

在把U盘用U深度制作成PE盘之后,再打开深度启动盘制作工具会出现无法识别U盘启动的情况,这是什么原因呢?我试试将U盘格式化、重启电脑等各种方法,终究是无法解决问题。无奈只好求助百度,发现在官方论坛已经有类似的反馈,根据官方的介绍,原来是我们的U盘被系统识别成本地磁盘,而不是可移动磁盘,而深度启动盘制作工具默认是屏蔽本地磁盘的。

修复引导那些事

最近折腾Windows 10和Linux双系统,后来Linux系统不想用了,就直接进PE把Linux那块分区给格掉了。这不格式化还好,一个格式化电脑开机就直接进入grub rescue> 不是吧,这么背!百度一波,原来是磁盘丢失引导导致的问题。抱着折腾不死那就往死里折腾的心态,我开始走上强制关机进PE修复引导的不归路……

鼠标悬停显示图片

废话不多说,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
function showImg(e, id) {
var image = document.getElementById(id);
image.style.left = e.clientX + 20 + 'px';
image.style.top = e.clientY + 30 + 'px';
image.style.display = "block";
}

function hideImg(name) {
document.getElementById(name).style.display = "none";
}
</script>
<img src="http://images.lolimay.cn/18-2-17/82883809.jpg" style="display:none;position:absolute" id="pic">
<a onmousemove="showImg(event,'pic')" onmouseout="hideImg('pic')" style="cursor:pointer; ">鼠标移上显示图片</a>

AutoHotKey脚本笔记

这篇文章主要记录我在使用AutoHotKey脚本的过程中的一些心得, 方便自己以后查阅~

BAT脚本笔记

这篇文章主要记录自己在使用bat脚本过程中的一些笔记,会不断更新~