热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS语法与技巧。

转自:微点阅读https:www.weidianyuedu.combcredible上列出了不少关于CSS使用语法上的小技巧,还是比较实用的。以前很多东

转自:微点阅读  https://www.weidianyuedu.com

bcredible上列出了不少关于CSS使用语法上的小技巧,还是比较实用的。以前很多东西只知道要这么写,可很少去考虑为什么。看来用CSS能做的事情远远比自己所了解的要多。

1. CSS字体定义简写规则

一般的写法会是这样:

font-weight: bold;

font-style: italic;

font-varient: small-caps;

font-size: 1em;

line-height: 1.5em;

font-family: verdana,sans-serif

而实际上你可以用更简洁的写法:

font: bold italic small-caps 1em/1.5em verdana,sans-serif

是不是更省事?不过使用这种简写需要注意几点:要使简写定义有效必须至少提供 font-size 和 font-family 这两个属性;同时font-weight, font-style 以及 font-varient 这几个属性如果不做设定的话将默认为normal。

2. 同时使用两个Class定义

一般我们只会给内容块指定一个Class,但这并不代表我们只能指定一个。实际上只要你愿意,可以同时把任意多个Class赋给某块内容。比如:

p ... /p

多个Class之间用空格分隔即可。当多个Class之间的属性发生重叠的时候,将根据各个Class在CSS定义文件中被定义的位置,后定义的Class属性自动覆盖之前定义的Class属性(而不是根据你在 这里排列的顺序来进行覆盖)

3. CSS border的缺省值

通常我们定义border属性都会提供color,width,style这些属性。比如 border: 3px solid #000 。不过实际上必须要提供的属性只有style。如果你只写 border: solid 的话,其他的属性自动使用缺省值。border的缺省宽度是medium(大约3px-4px),缺省的颜色是位于border里面的内容文字的颜色。如果这些缺省值可以满足你的要求,你完全可以省略这两项属性。

4. 专门用于打印的CSS文档

很多web页面都会提供一个打印链接,方便用户使用另一种适合打印界面的CSS。但实际上你完全可以为你的页面指定两个CSS文档link,这样浏览器会自动调用合适的CSS来用于显示或打印。比如:

link type="text/css" rel="stylesheet" href="stylesheet.css" media="screen" /

link type="text/css" rel="stylesheet" href="printstyle.css" media="print" /

通过指定link的media属性,浏览器就能根据需要来调用特定的CSS文件来处理页面了。关于打印更多的建议,请参见 Print Different,

5. CSS中的内容垂直对齐

用传统的table来实现垂直对齐很容易,只要用 vertical-align: middle 就可以让table的内容垂直居中。但这个属性在CSS里面却行不通。

解决方法是把内容的行高设置成与内容块一样高。比如你的div高是32px,那就在你的CSS定义里面添加属性 line-height: 32px; 这样文字看上去就垂直居中于层里面了。不过这个方法只适用于单行文字,对于多行文字,似乎没有什么好方法。

6. 让背景色能够垂直拉齐到底部

CSS与传统的table来说另一个让人不爽的地方是它的垂直层的对齐。如果你的页面分为两列,其中一列比较长而另一列比较短,同时两列的背景色和页面总的背景色是不同的话,显示出来的效果就比较丑陋,不像table那样只要把td的高度设成100%就能够把每一列的高度拉到一样长。

要解决这个问题似乎只能用一个取巧的办法,根据每列的宽度和背景色设置背景图片,让用户看上去似乎拉平了:

body

{

background: url(blue-image.gif) 0 0 repeat-y

}

7. block / inline 属性

任何一个HTML元素都是block或者inline的。

block元素的特性包括:

总是另起一行开始显示

height, line-height, top/bottom margin属性可以被设置

width缺省值是100%,除非你指定了另外的width值

这一类的HTML元素包括 div , p , h1 , form , ul 以及 li 等。

inline元素的特性包括:

直接跟在当前行的后面显示

height, line-height, top/bottom margin属性不能改变

width值就等于包含其中的文字/图片的宽度,并且这个值不能被改变

这一类的HTML元素包括 span , a , label , input , img , strong 以及 em 等。

你可以通过设置元素属性display: inline 或 display: block来改变元素的以上特性。

8. 设置页面的最小宽度

CSS语法中很有用的一个属性是 min-width 。通过这个属性你可以设置任何元素的最小宽度。也就是说你也可以用这个来限制页面显示的最小宽度。

但有个小问题是:IE浏览器无法为 body 元素设置min-width,因此要让这个属性起作用,我们需要走点弯路。

首先在 body 后面插入一个 div :

body

div

然后在CSS定义里面定义最小宽度为600px:

#container

{

min-width: 600px;

width:expression(document.body.clientWidth 600? "600px": "auto" );

}

第一个属性是最小宽度定义的标准写法;第二个属性则是只有IE能够理解的Javascript表达式。

你也可以同时设定页面的最大最小宽度:

#container

{

min-width: 600px;

max-width: 1200px;

width:expression(document.body.clientWidth 600? "600px" : document.body.clientWidth 1200? "1200px" : "auto");

}

9. Text-transform 属性

这个属性可能也是CSS当中用的人不多但却很有用处的属性之一。其常见的可用值包括:text-transform: uppercase, text-transform: lowercase 以及 text-transform: capitalize。第一个将把所有的字母转化成大写;第二个将范文大全把所有字母转成小写;第三个则把每个单词的首字母转成大写。不过对于非英文网站来说,这个功能确实就没什么用了。

10. IE中消失的文字和图片

IE有个很莫名其妙的Bug:有时候文字或者背景图片死活显示不出来。如果你全选整个页面,会发现那些内容实际上还在那里,或者重新刷新一下页面显示就正常了。

通常来说这个问题都发生在那些跟在浮动元素后面显示的文字或背景图片身上。要解决这个问题,可以试试给你的那些消失的元素加上position: relative 属性。如果还不行,再试试设置一下width属性。一般来说这样做之后问题就解决了。


推荐阅读
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 本文详细介绍了在 Android 7.1 系统中调整屏幕分辨率和默认音量设置的方法。针对系统默认音量过大的问题,提供了具体的步骤来降低系统、铃声、媒体和闹钟的默认音量,以提升用户体验。此外,还涵盖了如何通过系统设置或使用第三方工具来优化屏幕分辨率,确保设备显示效果更加清晰和流畅。 ... [详细]
  • MyISAM和InnoDB是MySQL中最为广泛使用的两种存储引擎,每种引擎都有其独特的优势和适用场景。MyISAM引擎以其简单的结构和高效的读取速度著称,适用于以读操作为主、对事务支持要求不高的应用。而InnoDB引擎则以其强大的事务处理能力和行级锁定机制,在需要高并发写操作和数据完整性的场景下表现出色。选择合适的存储引擎应综合考虑业务需求、性能要求和数据一致性等因素。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 本文探讨了利用JavaScript实现集合的对称差集算法的方法。该算法旨在处理多个数组作为输入参数,同时保留每个数组中元素的原始顺序。算法不会移除单个数组内的重复元素,但会删除在不同数组之间出现的重复项。通过这种方式,能够有效地计算出多个数组的对称差集。 ... [详细]
author-avatar
起薪d这帖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有