zoukankan      html  css  js  c++  java
  • HeadFirst HTML&CSS

    《Head First HTML 与 CSS》,2020寒假宅家看完,作为入门书很不错,内容简单易懂,适合我这种0基础小白。

    以后记不住还是去 w3school 吧,下面只是边看边写的东西。

    HTML基本元素及属性

    HTML建立结构(hypertext markup language)

    元素

    <html> </html>
    <head> </head>
    <body> </body>
    <title> </title>
    以上为4个必不可少的元素。

    html5需要在开头加上<!DOCTYPE html>,在head中加上<meta charset='utf-8'>,基本上都使用utf-8编码。
    <link>链接样式,用法<link rel="stylesheet" href="xxxx.css">。多个样式表,顺序很重要。
    <link>元素可以增加media属性来进行媒体查询。media中还可以有其他属性,如min-device-width,max-device-width,及显示方向orientation。
    还可以在CSS中进行媒体查询,使用@media确定页面使用的规则,将不匹配的规则忽略。

    <style></style>:在html文件中建立样式。
    <h1> </h1>:六个标题,从h1到h6。
    <p> </p>:段落。
    <a href="xxxx.html"> </a> <a> 元素作用:链接到指定路径,使用id属性可以链接到锚点。target="_blank"表示新建标签页打开。

    <a target="_blank" href="http://wickedlysmart.com/buzz/index.html#Coffee"
                      title="Read all about caffine on the Buzz">    // #后面为锚点 target="_blank"为新建标签页
    

    <img src="xxxx.jpg">:插入图片。
    <em> </em> :强调,变为斜体(浏览器决定如何强调)。
    <q> </q>:短引用。<blockquote> </blockquote>:长引用,可以包含<q><p>
    <br>:换行。
    <li> </li>:列表项。
    <ol> </ol>:包围列表项成为有序列表。
    <ul> </ul>:包围列表项成为无序列表。
    <code> </code>:用来显示代码。
    <time> </time>:表示时间或日期。
    <strong> </strong>:标记希望特别强调的文本。
    <pre> </pre>:使浏览器按照你输入的方式原样显示文本。

    <div>:创建块元素的不同的逻辑区。
    <span>元素,创建内联字符和元素的逻辑分组。

    元素分为:块元素、内联元素、void元素。

    &:实体字符,转义字符,html用到的字符需要使用是转义字符来输入,如&lt表示<,&gt表示>

    属性

    属性名+等于号+双引号括起来的属性值

    href:(hypertextreference)引用外部链接,表示界面和链接的关系。
    创建相对连接时文件用'/'分隔,'../'返回上一级目录,./当前目录,/根目录。
    src(source)引用外部资源,用所引用内容覆盖区域。
    type,type="text/css",可以不输入。
    id属性:添加目标。使用#+目标链接到该位置。
    title属性:添加描述。
    target元素<a>的属性,规定在何处打开链接,如target="_blank"
    alt图像无法加载时显示的预留文本。
    width,height:指定块元素的宽度,高度。

    HTML5

    新增元素header:指定页眉或区块和文章的首部。section:通用程度高于article低于div,指示区块是有相关内容构成的结构。 artical:指示可以独立于页面进行重发和分发的内容。 nav:导航元素。 footer:指定页脚。

    video:包括controls,autoplay,loop等布尔属性,控制有无控件,自动播放,自动循环。width,height属性,preload属性,以及src,poster指定视频与海报。
    mark:突出显示某些文本。audio:在页面中包含声音。progress:显示任务完成度。meter:显示某范围的度量。canvas:显示用JavaScript绘制的图像和动画。figure:定义类似照片、图表甚至代码清单等独立的内容。

    html表单

    <form></form>:创建表单,<form action="http://xxxx.com/xx/xx.php" method="POST">。action属性包含服务器脚本url。method指定打包数据的方法。

    表单中有<input>元素,input可以包含:
    文本输入<input type="text" name="xxx">。value属性可以为单行文本输入控件提供初始值。
    提交输入<input type="submit">。value属性可以改变按钮上显示的文本。
    单选钮输入<input type="radio" name="notorhot" value="not">
    复选框输入input type="checkbox" name="spice" value="Salt">。可以使用checked属性为单选或复选框提供默认值。
    email输入<input type="email" name="xx">
    tel输入<input type="tel" name="xx">
    URL输入<input type="url" name="xx">
    日期输入<input type="date" name="xx">
    密码输入<input type="password" name="secret">
    文件输入<input type="file" name="doc">
    数字输入<input type="number" min="0" max="20" name="xx">
    范围输入<input type="range" min="0" max="20" step="5" name="xx">
    颜色输入<input type="color" name ="xx">
    input为void元素,无结束标记,每个input都有自己的name属性。提交时服务器会使用name打包所有数据。
    可以为<input>提供placeholder属性给用户提示,属性值以浅色显示到控件。提供required属性使某个域必须有值,否则无法提交表单。

    文本区<textarea name="comments" rows="10" cols="48"></textarea>。放在元素中的内容会成为默认文本。
    可以使用maxlength限制text的字符数,但无法限制textare的字符数。

    任何表单元素都可以使用label元素来加标签,使用时各控件必须要有惟一的id。

        <input type="radio" name="hotornot" value="hot" id="hot">
            <label for="hot">hot</label>
        <input type="radio" name="hotornot" value="hot" id="not">
            <label for="not">not</label>
    
            <label for="bags">Number of bags:</label>
        <input type="number" id="bags" name="bags" min="1" max="10">
    

    fieldset为表单上公共元素分组,legend为各个分组命名。

    菜单:

    <select name="characters">
        <option value="1">1</option>
        <option...>
        ...
    </select>
    

    <select>增加multiple属性可以变为多选菜单,multiple同样为布尔属性。

    浏览器向服务器发送数据的两种方法:
    POST:打包发送对用户不可见。GET:打包发送并把请求追加到url最后。
    GET一般用于需要加书签的结果界面,POST用于私有数据或不希望加书签的界面。如果使用textare或文件输入file则应使POST,因为可能会发送大量数据。

    由于表单有一个表格结构,通常使用CSS表格显示来建立表单布局

    创建自己的网站

    域名:xiaodi.com
    网站名:www.xiaodi.com、home.xiaodi.com等

    URL(uniform resourse locators):统一资源定位符。
    HTTP(hypertext transfer protocal):超文本传输协议。
    协议+网站+绝对路径=URL
    http://+www.xxx.com+/xxx.html '/'表示根。

    CSS的规则及属性

    CSS用来建立表现(cascading style sheets)

    CSS选择器

    css通过选择器给html元素指定样式。
    类选择器.class {},伪类选择器a:hover,id选择器#id {},伪元素选择器p:first-letter
    子孙选择器:div h2{}父子之间有一个空格,默认会选择所有子孙。而使用>例如#elixirs>h2会选择elixirs的直接孩子。
    属性选择器

    img[width] {border: black;}
    img[alt~="flowers"] {border: red thin solid;}
    

    按兄弟选择

    h1+p {}    /*选择所有跟在<h1>元素后的段落*/
    

    结合选择器

    div#xxx > blockquote p:first-line {}    /*id为xxx的直接儿子blockquote的p子孙的伪元素first-line*/
    

    类、伪类

    类(class):可以为元素指定类,然后分类设置css属性。
    伪类(pseudo-class):可以使用伪类来单独地为各个状态指定样式。最常用于<a>元素。
    浏览器自动确定的元素属于哪些伪类,不用写在HTML中,例如a:link,a:visited,a:hover,a:focus,a:active,'first-child',last-child等。

    规则

        <style>
          h1, h2 {
              font-family: sans-serif;
              color: gray;
          }
          h1 {
            /*text-decoration: underline;*/
            border-bottom: 1px solid black;
          }
          p {
              color: maroon;  /*字体颜色*/
          }
        </style>
    

    创建.css文件(样式表),将所有相同样式的html文件链接(<link>元素)到同一个css即可,不需要<style>元素。

    继承:
    只有一部分属性可以继承。
    改变段落的字体,会改变链接和强调的字体。
    一般影响文本外现的属性都可以继承,例如:color,font-family,font-size,font-weight,font-style。
    p, h1, (h1, h2), body等为选择器(selector)

    body {
      font-family: sans-serif;
    }
    h1, h2 {
      color: gray;
    }
    h1 {
    /*text-decoration: underline;*/
    border-bottom: 1px solid black;
    }
    p {
      color: maroon;  /*字体颜色*/
    }
    

    覆盖继承:

    em {
        font-family: serif;
    }
    

    css会使用更特定的规则,特定程度相同,则使用最后列出的规则
    判断规则是否更具体的方法:id在百位数,class或pseudo-class在十位数,元素在个位数,因此包含一个id则加100,一个类或伪类加10,一个元素加1,总的数值越大越具体。

    css属性:
    color,font-weight,left,line-height,top,background-color,border,padding,
    font-size,text-align,font-style,list-style,list-style,background-image...
    font-family包括:serif系列、sans-serif系列、monospace系列、cursive系列、fantasy系列。
    @font-face使用Web字体。
    font-size指定字体大小的四种方式:像素16px,百分号(相对于继承)120%,比例(相对于父元素字体大小)1.2em,关键字(xx-small,x-small,small,medium,large,x-large,xx-large)。
    font-weight设置文本粗细,如bald,normal。
    font-style增加文本风格,如斜体italic,倾斜文本oblique。
    color一般用#加6位十六进制表示。
    text-decoration:增加上中下划线,underline,overline,line-through。
    Line-height:行高。
    background-image:图片作为背景。
    background-repeat:设置图像重复属性。
    background-position:指定图像的位置。
    border-style:边框线型solid、dotted、dashed、double、groove、inset、outset、ridge,border-widthborder-colorborder-radius:指定圆角。指定单独一边border-top-colorborder-right-styleborder-bottom-widthborder-left-radius
    width属性:只指定内容区的宽度,元素的默认宽度是auto。指定为百分数时,是相对于其容器的百分数(bodydiv),高度则最好不要显示给出。
    text-align:会对块元素内所有内联元素进行对齐,可以由所有嵌套的块元素继承。例如center居中对齐。

    float属性,让元素浮动并从正常流中删除,元素之外的内容(块元素会忽略浮动元素,其包围的内联元素)会绕流这个元素。设置主内容的边框可以让其和浮动的元素之间有个中缝(gutter)。可以浮动内联元素。对主内容使用float left可以避免小的移动设备先看到边栏(对边栏设置float right时)。浮动元素的外边距不会折叠
    clear属性:可以给块元素提供clear属性值为right或left,这样块元素会下移,直到它左边、右边或者两边没有浮动元素挨着它。

    为列表li设置css属性list-style-type可以更该列表前面的标记,如disc,circle,square,或none。
    可以自己定制标记,使用list-style-iamge属性并提供url。
    也可以为有序列表指定list-style-type,可以为decimal,upper-alpha,lower-alpha,upper-roman,lower-roman。
    利用list-style-positon控制文字回绕,outside时在文本下回绕,inside时在标记下回绕,以及其他。

    可以对相关属性使用快捷方式:
    内外边距简化写法padding: 0px 20px 30px 10px;分别表示上右下左(顺时针)的内边距,内边距一样则可写为padding: 20px;。还可以写成margin: 0px 20px;前面表示上下,后面表示左右。
    边框的简化写法border: thin solid #007e7e;可以按照任意的顺序来写。
    背景也类似background: white url(images/cocktail.gif) repeat-x;
    字体属性的简写font: font-style font-variant font-weight font-size/line-height font-family,其中style,variant,weight可以任意组合但必须在size后面,height可选,但必须在size后加上/,最后family中不同字体间使用逗号隔开。例如:
    font: small/1.6em Verdana, Helvetica, Arial, Sans-serif;

    CSS布局策略

    元素流:浏览器从上至下显示块元素,从左上到右下显示内联元素。内联元素嵌在块元素之间,文本被认为内联元素。

    盒模型(box mode):内容区(content area),透明内边距(padding),可选边框(border),透明外边距(margin)。
    浮动布局:给边栏设置float属性,也非常适合在一个文本段落中浮动图像。缺点是必须把边栏移动到主内容之上。另外无法创建两个高度相同的列。
    凝胶布局:由固定大小的<div>包围页面中的所有内容,然后利用auto属性值允许外边距扩展,保证内容居中,很多博客为这种布局。缺点是内容不会扩展。
    绝对布局:给边栏一个绝对定位以及固定宽度,并定位在主内容一侧,可以得到一个可扩展的主内容区以及一个固定的边栏。缺点为浏览器变宽时边栏会覆盖页脚。
    表格显示:向HTML增加两个<div>,一个作为表格,另一个作为行,而列用一个块元素表示,可以得到完美对齐的多列页面,并且所有内容都可扩展。

    指定一组元素样式是使用class,指定一个时使用id

    流体布局(liquid layouts)、冻结布局(frozen layouts)与凝胶(jello)。

    流体布局即使块元素浮动,冻结布局将整个body的宽度固定,而凝胶时设置body的左右外边距值为auto,使body的内容自动居中。

    绝对定位(absolute positioning)布局

    设置position属性为absolute,设置其top、right或者bottom、left即相对于页面的位置,然后设置其宽度。与float不同,绝对定位中,内联元素也会忽略被绝对定位的元素。多重的绝对定位会覆盖。position有四个属性值,static(默认)、absolute、fixed、relative。绝对定位,固定定位,相对定位会有一个z-index值控制分层。

    css表格显示

    对整个表格创建一个<div>,然后对每一行创建一个<div>,对每一列只需要一个块级元素作为内容。
    对每个表格设置display属性为table,行设置为table-row,而每一列即每一个块元素设置为table-cell,并且设置其vertical-align属性确保内容对齐,可设置为top,middle,bottom

    • 左右放置两个内联元素,外边距会叠加。上下放置两个块元素,外边距会折叠(取大值)。浮动元素的外边距不会折叠
    • 表格与其他块元素上下摆放时外边距也不会折叠,因此需要修改其上下元素的外边距。

    绝对,固定,相对定位。

    fixed固定位置,相对浏览器窗口(视窗)位置不变。如果一个元素嵌套在另一个定位元素中,这个元素就会相对于外包含定位
    可以使用top,right,bottom,left来指定元素的位置。
    relative相对定位,元素会进入正常流入界面,然后按照指定量偏移,从而流出原先所在的空间。相对位置使用top,right,bottom,left是指距正常流中该元素的偏移量。
    给元素使用负的位置,例如left: -90px,可以使元素左边定位比视窗边界更左。可以使用top,right,left,'bottom'偏移元素。

    • 图片链接会使用边框,因此取消应使用border: none;,而文本链接使用下划线,因此取消应使用text-decoration: none;

    HTML表格

    table,caption,th,tr,td元素:建立HTML表格。
    可以为table写caption-side规则让标题为bottomtop
    单元格与单元格之间的空间为border-spacing,可以设置为0px,也可以设置水平和垂直的边框间距border-spacing: 10px 30px;水平为10px,垂直为30px。但不能为每个单元格单独设置外边距。

    • 可以设置border-collapse属性值为collapse,,折叠边距,同样可以消除表格间距。
    • 利用nth-child伪类来为表格隔行指定颜色。例如p:nth-child(odd)选择奇数,甚至更加灵活p:nth-child(2n+1)选择奇数。
    • 利用tdrowspan属性使单元格跨多行,例如<td rowspan="2">xxx</td>。同理colspan使单元格跨多列,但输入下行元素是要空出对应位置。

    开发商特定的CSS属性

    div {
        transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
    }
    

    CSS变换和过渡

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>CSS Transforms and Transitions</title>
        <style>
          #box {
            position: absolute;
            top: 100px;
            left: 100px;
             200px;
            height: 200px;
            background-color: red;
            transition: transform 0.5s;
            -webkit-transition: -webkit-transform 0.5s;
            -moz-transition: -moz-transform 0.5s;
            -o-transition: -o-transform 0.5s;
          }
          #box:hover {
            transform: rotate(45deg);
            -webkit-transform: rotate(45deg);
            -moz-transform: rotate(45deg);
            -o-transform: rotate(45deg);
            -ms-transform: rotate(45deg);
          }
        </style>
      </head>
      <body>
        <div id="box"></div>
      </body>
    </html>
    

    剩下的是该书的附录部分

    交互性

    使用JavaScript脚本语言来编写程序或脚本,可以让页面有自己的行为。

    HTML5 API和WEB应用

    再谈Web字体

    @font-face{
        font-family:"Emblema One";
        src:url("EmlemaOne-Regular.woff"),
            url("EmlemaOne-Regular.ttf");
    }
    

    创建Web页面的工具

    • Dreamweaver
    • Hype
    • Coda
    • Flux
    • Eclipse
      等等。

    XHTML5

    服务器端脚本

    服务器端的应用生成Web页面。

    音频

          <audio id="blood_and_wine" controls>
            <source src="audio/01 Blood and Wine.flac">
            <source src="audio/01 Blood and Wine.mp3">
            <p>Sorry but audio is not supported in your browser.</p>
          </audio>
    
  • 相关阅读:
    十五组TD信息通的使用体验报告
    如何让Div中的Table居中
    SQL SERVER临时表的使用
    如何将px换成em,px与em区别是什么?
    再说委托
    onclick与onCommand的区别
    亚马逊购物的用户体验分析
    jQuery 1.4 版本的十五个新特性
    如何选择SEO公司才能避免上当
    jQuery对象与dom对象
  • 原文地址:https://www.cnblogs.com/AIxiaodi/p/12274586.html
Copyright © 2011-2022 走看看