由来

从事软件行业一晃也5年有余,之间参与过若干个基于web的项目,所以javascript和Html基本已经相当熟悉,最近对于web前端开发比较关注,分析后发现CSS的确是自己的弱项,于是决定再加强下。就开始啃本书吧:CSS权威指南》,此处以及以后文章都将以学习该书为基础展开。

以下是第一章:“CSS和文档” 学习笔记

概念区分

替换和非替换元素

CSS起作用主要依赖于元素,但并非所有的元素都以相同的方式创建。比如,图像和段落就不是同类元素,span和div也不相同,通常元素的表现形式有两类:替换和非替换。

    • 替换元素(replaced element)

指用来替换元素内容的部分并非由文档内容自己标示。比如img元素,img没有具体内容,它的具体靠src属性指定的一个图像来填充。再比如:<input /> type="text" 的是,这是一个文本输入框,换一个其他的属性(button)时候,浏览器显示就不一样。(X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替换元素,这些元素都没有实际的内容。

    • 非替换元素(nonreplaced element):

大多数(X)HTML元素都是非替换元素,其内容由浏览器在元素本身生成的框中显示。比如<span>css base</span>就是一个非替换的元素。

块元素和行内元素

    • 块元素:

块元素生成一个元素框,默认情况下(没有css干预下),它会填充其父元素的内容区,旁边不能有其他元素。比较熟悉的有p和div。可以把块元素div想象成一个个box,或者如果你玩过剪贴文载的话,那就更加容易理解了。我们先把需要的文章从各种报纸、杂志剪下来。每块剪下来的内容就是一个block。然后我们把这些块按照自己的排版意图,用胶水重新贴到一张空白的新纸上。这样就形成了你自己独特的文摘快报了。

    • 行内元素:

行内元素在一个文本行内生成元素框,而不会打断这行文本。最好的例子就是XHTML中的a元素。这些元素不会在它本身之前或者之后生成“分隔符”,所以可以出现在另一个元素内容中,而不会破坏其显示。

当然在实际的使用过程中往往会用css属性来其作用:display。这个属性是使用,会在后期学习奉上。

关于link

一般一个html页面要引用独立文件的css样式,都会用到link标签,比如:

<link rel=”stylesheet” type=”text/css” href=”sheet1.css” media=”all”>

在使用过程中需要注意几点:

    • Link必须放在head元素中,不能放在其他元素内部<如title>。
    • Css文件中不能包含XHTML或任何其他标记语言。
    • 外部引用css文件不一定非得有个扩展名,但是基于对旧版本的浏览器的支持,建议写明.css结尾。

另外在使用过程中,我们也很少接触一个link标签属性:title(获选样式表中使用)。比如:

<link rel=”stylesheet” type=”text/css” href=”sheet1.css” title=”default”>
<link rel=”stylesheet” type=”text/css” href=”sheet1.css” title=”big-text”>

很多浏览器支持用户选择样式,通过添加title用户可以基于浏览器进行样式的切换,当然IE目前还是不支持,这个功能也用的比较少。

重拾CSS基础—开篇的更多相关文章

  1. 重拾C++ 基础知识总结(二)

    1.标准库string类型: 用户程序要使用string类型对象,必须包含相关头文件 #include <string> 字符串字面值与标准库string类型不是同一种类型,字符串字面值是 ...

  2. 重拾C++ 基础知识总结(一)

    1.使用gcc编译c++文件报错 proc1.cc:(.text+0x14): undefined reference to `std::cout' C++程序使用gcc命令只能编译,不能链接库文件 ...

  3. CSS魔法堂:重拾Border之——更广阔的遐想

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  4. CSS魔法堂:重拾Border之——图片作边框

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  5. CSS魔法堂:重拾Border之——不仅仅是圆角

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  6. CSS魔法堂:重拾Border之——解构Border

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  7. 重拾Java Web应用的基础体系结构

    目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...

  8. HTML5 -入门 (---css样式-------------(css基础与css选择器)---------------------—)

    ---恢复内容开始--- 一css基础入门与css选择器 CSS英文全拼:cascading style sheet 层叠样式表. 在html中使用:要在head中写style标签,所有样式放在sty ...

  9. CSS 基础总结

    CSS基础 Doctype 声明位于文档中的最前面,处于 标签之前.告知浏览器的解析器,用什么文档类型 规范来解析这个文档. 在标准模式中,浏览器根据规范呈现页面: 在混杂模式中,页面以一种比较宽松的 ...

随机推荐

  1. JavaWeb核心编程之(三.1)ServletHello

    Servlet简介Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servlet和客户的通信以及调用Servlet方法, 在这里Servlet ...

  2. HTTP协议中keep-alive

    一 . http协议是有连接的协议,这样每一个连接过来都要重新打开一个tcp的http socket,短期内同一个host 对服务器的请求就会很慢,若是能够保持住连接,就可以节省socket open ...

  3. java面向对象之 多态 Polymorphism

    多态(Polymorphism):用我们通俗易懂的话来说就是子类就是父类(猫是动物,学生也是人),因此多态的意思就是:父类型的引用可以指向子类的对象. 1.多态的含义:一种类型,呈现出多种状态 主要讨 ...

  4. 密码学——网间数据加密传输全流程(SSL加密原理)

    0.导言 昨天写了一篇关于<秘钥与公钥>的文章,写的比较简单好理解,有点儿像过家家,如果详细探究起来会有不少出入,今天就来详细的说明一下数据加密的原理和过程.这个原理就是大名鼎鼎SSL的加 ...

  5. RobotFramework环境搭建

    环境搭建 1. 准备条件 python-2.7.7 https://www.python.org/download/releases/2.7.7/ wxPython2.8-win32-unicode- ...

  6. #include <array>

    array是静态数组,在栈上,不可以变长 vector比array更常用 不需要变长,容量较小,用array 需要变长,容量较大,用vector 1 array 1 array新数组 //std::a ...

  7. netbeans字体与颜色配置模板相关网站

    NetBeans Themes -Color Schemes of the NetBeans IDE NetBeans ThemeBuilder

  8. ANDROID资源文件【转】

    1.  资源包括:文本字符串.图像和图标.音频文件.视频和其他应用程序使用的组件. 2.  在Android工程中,Android资源文件是同Java类文件分开存储的,大多数常见的资源类型存储在XML ...

  9. SurfaceView 和 View 区别

    android.view.View 和 android.view.SurfaceView SurfaceView 是从 View 基类中派生出来的显示类,直接子类有 GLSurfaceView和Vid ...

  10. 加入功能区buttonRibbon Button到SP2010特定列表或库

    加入功能区button到SP2010某一列表或库         有时候你须要给列表/库的功能区加入新button--没有什么比这更简单的了. 你仅仅须要新建一个SP项目.加入一个feature,加入 ...