这本书讲解了HTML和CSS可能会使你说什么他妈的原因,它例举了一系列通常令人沮丧的HTML和CSS困境,窘境甚至失策的地方。

内容

·

文档类型声明

·

盒数学模型

·

Rem单位和Mobile Safari

·

浮动第一

·

浮动和清除

·

浮动和计算高度

·

块级浮动元素

·

垂直边缘经常崩溃

·

样式表行

·

Firefox和按钮

·

Firefox 按钮内部轮廓

·

总是在中设置类型type

·

IE浏览器的选择器限制

·

位置解释

·

位置和宽度

·

定位和转换

文档类型声明

HTML文件总是包含一个文档类型,我推荐HTML5的简单文档类型:

跳过文档类型会导致畸形的表格,输入框甚至更多,因为页面将会在兼容模式下渲染。

盒子模型(Box Model)

设置了宽度width的页面元素当有填充(padding)和/或者边框宽度(border-width)时会变得更宽。为了避免这些问题,利用现在常见的box-sizing: border-box; reset.

Rem单位和Mobile Safari

Mobile Safari支持在所有属性值中使用rem,当rem用于一维媒体查询时是不成熟的,它会导致在不同的页面大小中不停地闪烁文本。

现在,用em代替rem.html {

font-size: 16px;

}

/* 在Mobile Safari中会引起闪烁 */

@media (min-width: 40rem) {

html {

font-size: 20px;

}

}

/* 在 Mobile Safari 中表现很棒*/

@media (min-width: 40em) {

html {

font-size: 20px;

}

}

求帮助!如果你有一个链接能够报告这个错误给苹果或WebKit,我想把它报告上去。我不确定去哪里报告只适用于移动,而不适用于桌面的Safari浏览器。

浮动第一

被浮动的元素应该排在文档顺序中的第一位。浮动元素需要环绕,否则他们反而会导致元素往下挪,而不是出现在内容的下面。

Float

浮动和清除

如果你要浮动一个元素,你可能需要清除它的浮动。任何跟随一个浮动元素的内容,将会一直环绕该元素,直到它被清除浮动。要清除浮动,可以使用以下技术之一。

用 .clearfix与一个单独的类清除你的浮动。.clearfix:before,

.clearfix:after {

display: table;

content: "";

}

.clearfix:after {

clear: both;

}

另外一种方法,在父元素上指定overflow的属性为auto或者hidden.parent {

overflow: auto; /* clearfix */

}

.other-parent {

overflow: hidden; /* clearfix */

}

请注意,overflow会导致其他意想不到的副作用,特别是在父元素中定位的元素的四周。

注意!让未来的自己和你的同事开心,当清理浮动而且这个属性可以用于其他的原因,要声明/ * clearfix

* /。

浮动和计算高度

一个父元素只有浮动的内容将有一个计算的高度height:0 ;给父元素添加清除浮动强迫浏览器计算一个高度。

块级浮动元素

浮动元素自动变成display:block;没有必要同时设置两个属性,因为float会覆盖掉你的display属性..element {

float: left;

display: block; /* 不需要 */

}

有趣的事实,几年前,为了IE6中大多数的浮动正常工作,避免将margin的值翻倍,我们得设置display:inline;然而,那些日子早已过去了。

垂直边缘经常崩溃

在很多情况下,相邻元素(一个接一个)的顶部和底部边界会崩溃。但是浮动或者绝对定位的元素不会这样。阅读这篇MDN文章或者CSS2规范 崩溃的边缘部分崩溃的边缘部分去找到更多相关内容。

样式表行

表行,

,不要接受borders属性,除非你在父元素

或者 有相同的border-width,表格行的border将不会被应用。看这个JS本链接为例。

Firefox和按钮

不知道什么原因,Firefox应用line-height属性去提交,而input按钮不能被定制的CSS样式覆盖。有两个选择可以解决这个问题:

1.坚持元素

2.在按钮上不要使用line-height属性

如果你选择第一个方法(而且我推荐这个方法,毕竟是很棒的),以下是你需要知道的:

Save changes

Cancel

如果你想选择第二种方法,就不要给垂直对齐按钮的按钮文本设置line-height属性,而只用padding属性。在Firefox中查看这个JS本示例看看它原始的问题和变通方案。

好消息!在Firefox 30中可能会修复这个问题。对未来的我们来说是个好消息,但是我们要意识到它不会修复旧版本的问题。

Firefox按钮内部轮廓

火狐在button(和)的:focus伪类上增加一个内部轮廓。很明显,它是为可访问性设置的,但貌似它的定位很奇怪。用这个CSS样式来覆盖它:

input::-moz-focus-inner,

button::-moz-focus-inner {

padding: 0;

border: 0;

}

你可以看到这个修复与前一节中提到的JS本示例JS本示例在行动上是相同的。

注意!要确保在buttons,links和inputs上包含相同的focus聚焦状态,

为了给通过内容标记的专业用户和有视力障碍的用户提供一个功能可见的访问性是至关重要的。

总是在中设置类型

元素的默认类型是submit,这意味着表单中的任何按钮都会提交这个表单。不提交表单的时候用type="button",提交表单的时候要用type="submit"。

保存修改

取消

当要给按钮设置一个动作但又不在表单中时,使用  type="button"

x

有趣的事实:很明显,IE7不是很好的支持上设置的value属性。而不读属性的内容,它从innerHTML(闭合的<按钮>标签之间的内容)获取按钮的文本而不是从属性的值读取。然而,我不认为这值得很大的关注,原因有两个:IE7的使用率每况日下,在元素上同时设置value属性和innerHTML似乎是相当罕见。

IE浏览器的选择器限制

IE9及其以下版本的浏览器限制每个样式表最多有4096个选择器,也限制了31个复合的样式表和每个页面包含的元素。所有超过这个限制的内容都会被浏览器忽略。是把你的CSS样式表分开还是重构,我建议后者。

作为一个有用的注意点,这里列出了浏览器如何计数选择器个数:

/* 一个选择器 */

.element { }

/* 两个以上选择器*/

.element,

.other-element { }

/* 三个以上选择器 */

input[type="text"],

.form-control,

.form-group > input { }

位置解释

元素被设置为position:fixed;那么它们的位置和浏览器窗口是相对的。被设置了position:absolute;的元素的位置与最接近他们的父元素相对应而不是静态的(例如,相对的,绝对的,或固定)。

位置和宽度

不要在已设置position: [absolute|fixed];,left和right.的元素上设置width:100%;使用width:100%;相当于配合使用left:0;和right:0;使用其中一个或另一个,但不要同时使用。

定位和转换

如果一个元素的父元素设置了transform属性,浏览器就会打破设置的position:fixed;样式。使用转换会创造一个新的控制块,会高效的强迫父元素设置position:relative;而且固定的元素也会以position:absolute;的样式显示。

html图片显示和夫宽一样,功夫:HTML和CSS?相关推荐

  1. 【uniapp】长方形图片显示中间正方形部分不压缩图片(圆形展示)

    实现思路 在使用 uni-app 框架的 uni-image 组件时,如果要将长方形图片显示为中间的正方形部分,可以使用 CSS 来实现裁剪效果.首先使用mode="widthFix&quo ...

  2. js用图片显示现在时间

    js用图片显示现在时间 话不多说,直接上代码: <!DOCTYPE html> <html><head><meta charset="utf-8&q ...

  3. img图片太大设置图片宽高,图片显示变形解决办法

    当img图片太大时,设置图片宽高图片显示就会变形,object-fit属性就可以很好的解决这个问题: <div><img src="https://img0.baidu.c ...

  4. 移动端图片自适应,img固定宽高,怎么解决不同尺寸图片显示会变形的问题

    方案1: 根据图片实际宽高和需要显示的容器宽高等比例拉伸或缩小1.父容器如div设置固定width和height,设置 overflow: hidden,设置相对定位;2. img设置绝对定位,设置最 ...

  5. c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ...

  6. 基于STM32F407图片显示实验(有代码)

    一.实验目的 在开发产品的时候,很多时候,我们都会用到图片解码,本次实验介绍如何通过 STM32F4 来解码 BMP/JPG/JPEG/GIF 等图片,并在 LCD 上显示出来. 二.图片格式简介 我 ...

  7. 【正点原子STM32连载】第四十八章 图片显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  8. JS控制图片显示的大小(图片等比例缩放)

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  9. Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示

    功能: 自定义 ImageView 设置显示图片,如果图片的宽与高小于控件的宽与高,就将图片设置显示到控件的中央, 如果图片的宽与高有一项大于控件的宽与高,那么就将图片进行缩放显示,两者者是显示在控件 ...

最新文章

  1. 斯坦福CS229机器学习课程的数学基础(概率论)翻译完成
  2. 音视频技术开发周刊 | 159
  3. 微软正在考虑将Windows默认浏览器改为Chromium
  4. Android中创建自己的对话框
  5. Windows Phone Developer Registration 开发人员无法连接注册解决
  6. 面向对象chapter10
  7. Service worker 的概念和用法
  8. python爬取淘宝数据魔方_淘宝数据魔方看人群情况
  9. 2023年东北大学外国语言学及应用语言学考研上岸经验贴
  10. linux压缩文件夹命令
  11. 项目中碰见的错误(三) 对路径的访问被拒绝
  12. Polygon 上 3 款最受欢迎的 GameFi 游戏
  13. java工作日志,如何写工作日志
  14. curl伪造ip请求
  15. python函数中变量LEGB原则
  16. 【彩艳】ArcGIS影像裁剪说明
  17. 13 个优秀的 Vue 开源项目及合集推荐
  18. ORA-00054 资源正忙
  19. Web 压测工具介绍
  20. 【时间轴】推荐几款jQuery时间轴插件Timeline

热门文章

  1. 数字下变频和数字上变频
  2. .NET Core IdentityServer4实战-开篇介绍与规划
  3. linux/unix系统编程手册11-15
  4. try~Catch语句中异常的处理过程
  5. 【POJ】2828 Buy Tickets(线段树+特殊的技巧/splay)
  6. OpenStack Swift源码安装
  7. Asp.Net 上传大文件
  8. 每日一篇——Fed Unveils Major Expansion of Market Intervention
  9. python绘制可多角度查看的3d图像
  10. P1435 回文字串(DP)