我的前端学习之路-----HTML+css(一)

(本条为个人学习随手笔记,以基础知识为主)

我的推荐练习网站:https://www.freecodecamp.org/learn

(免费的前端练习网站,像是闯关,推荐指数★★★★★)

推荐学习网站:菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com)

                          中国大学MOOC(慕课)_国家精品课程在线学习平台 (icourse163.org)

————客户端与服务器————

通常情况下,现在的软件由客户端与服务器两个部分组成

           客户端:用户通过客户端使用软件

           服务器:服务器负责远程处理业务逻辑

                         开发语言有:Java、PHP、c#、python、node.js等(前段学习Java与node.js比较重要)

 (插播一条有趣小知识:蒂姆-伯纳斯——李爵士万维网的发明人,没有将网站申请为专利)

HTML:超文本标记语言         

              超文本:指通过超链接的形式将文本有机的组织在一起 

              标记:可以理解为标签

网页的版本

  • HTML4
  • XHTML2.0
  • HTML5

HTML5基本结构

<!-- 文档声明,声明当前网页的版本 -->
<!DOCTYPE html>
<!-- html的根标签(元素),网页中的所有内容都要写根元素的里边 -->
<html>
    <!-- head是网页的头部,head中的内容不会在网页中直接出现,主要用来帮助浏览器或搜索引擎来解析网页 -->
    <head>
        <!-- meta标签用来设置网页的元数据,这里meta用来设置网页的字符集,避免乱码问题 -->
        <meta charset="utf-8">
        <!-- title中的内容会显示在浏览器的标题栏,搜索引擎会主要根据title中的内容来判断网页的主要内容 -->
        <title>网页的标题</title>
    </head>
    <!-- body是htm1的子元素,表示网页的主体,网页中所有的可见内容都应该写在body里 -->
    <body>
        <!-- h1网页的一级标题 -->
        <h1>网页的大标题</h1>
    </body>
</html>


HTML DOM树   

DOM:Docunment Object Model (文档对象模型)          

   

 标签

h1~h6标题
br段内换行
span段内分组
p段落
pre预留格式
hr水平线
超链接a

链接到本站点 其他网页

链接到其他站点

虚拟超链接

             

插入图像img

图像格式:JPG

                  GIF      简单动画、背景透明

                  PNG     无损压缩、透明、交错、动画

src属性: 路径+文件名

路径分绝对路径和相对路径

        绝对路径:以根目录为基准  

        相对路径:以该文档所在位置为基准

div区域
ul无序列表li列表项
ol有序列表li列表项
table

定义表格

th定义表格的表头
tr定义表格的行
td定义表格单元

示例:(1)合并行

<td rowspan= "跨度的行数">

<body>
    <table border="1">
        <tr>
            <td>餐馆名:</td>
            <td>一家好吃的餐厅</td>
        </tr>
        <tr>
            <td rowspan="3">菜单:</td>
            <td>鱼香肉丝</td>
        </tr>
        <tr>
            <td>宫保鸡丁</td>
        </tr>
        <tr>
            <td>木须肉</td>
        </tr>
    </table>
</body>

运行结果:

 

(2)合并列

<td colspan="跨度的列数">

<body>
    <table border="1">

        <tr>
            <td colspan="2">一家很美味的餐厅</td>
        </tr>
        <tr>
            <td>宫保鸡丁</td>
            <td>鱼香肉丝</td>
        </tr>
        <tr>
            <td>刀削面</td>
            <td>牛肉炒面</td>
        </tr>
    </table>
</body>

运行结果:

 

表单

表单标签共有4个:<input>、<textarea>、<select>和<option>。其中<select>和<option>是配合使用的。

         语法:<input type="表单类型"/>

text单行文本框
password密码文本框

submit

提交按钮
reset重置按钮
radio单选按钮
checkbox 复选框
下拉列表框
select定义了下拉选项列表
option

定义了下拉列表中的选项

<form>
     爱好:
     <select>
        <option>看书</option>
        <option select="selected">旅游</option>
        <option>运动</option>
        <option>购物</option>
     </select>
</form>
Textarea定义文本域
<textarea  rows="行数" cols="列数">文本</textarea>



h5

什么是h5?

H5本指第5代html标准规范,但因为html5规则对视频音频和触屏互动等事件的支持远超前代,因此H5逐渐演变成一种可以在移动端展示的动态页面

现有的H5包括普通的幻灯片形式、需要简单点击的故事形式、用户能够参与的带有互交的功能形式、可以提交数据的表单形式、朋友圈流传的小游戏形式等。

新增标签

  • header --- 头部标签

  • nav --- 导航标签

  • article --- 内容标签

  • section --- 块级标签

  • aside --- 侧边栏标签

  • footer --- 尾部标签

语义化标签的使用注意事项

  • 语义化标签主要针对搜索引擎
  • 新标签可以使用一次或者多次

  • 在 IE9 浏览器中,需要把语义化标签都转换为块级元素

  • 语义化标签,在移动端支持比较友好,

拖放

拖放指抓取对象以后拖到另一个位置

拖放的步骤:

  1. 设置元素为可拖放
    <img draggable="true">
  2. 拖动什么 

        dataTransfer.setData() 方法设置被拖数据的数据类型和值:

function drag(ev)
{
    ev.dataTransfer.setData("Text",ev.target.id);
}

Text 是一个 DOMString 表示要添加到 drag object 的拖动数据的类型。值是可拖动元素的 id ("drag1")。

      3.放到何处

ondragover 事件规定在何处放置被拖动的数据。

默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

这要通过调用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()

       4.进行放置

当放置被拖数据时,会发生drop事件

function drop(ev)
{
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
}
  • 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
  • 通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
  • 被拖数据是被拖元素的 id ("drag1")
  • 把被拖元素追加到放置元素(目标元素)中

多媒体标签

  • 音频 -- audio
  • 视频 -- video

当前, <video> 元素支持三种视频格式: MP4, WebM, 和 Ogg:

  • MP4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件
  • WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件
  • Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件
<audio>属性描述
autoplayautopaly出现该属性,则音频在就绪后马上播放
controlscontrols出现该属性,则向用户显示音频控件(比如播放、暂停等)
looploop

出现该属性,则每当音频结束时重新开始播放

mutedmuted出现该属性,则音频输出为静音
preload

auto

metadata

none

规定当网页加载时,音频是否默认被加载以及如何被加载
src url规定音频文件的URL

<video>标签时HTML5 的新标签

语法格式为:

<video src="./media/video.mp4" controls="controls"></video>

<video>属性描述
autoplayautoplay

出现该属性,则视频在就绪后马上播放

controlscontrols出现该属性,则向用户显示控件,比如播放按钮
heightpixels设置视频播放器的高度
looploop出现该属性,则当媒介文件完成播放后再次开始播放
mutedmuted出现该属性,视频的音频输出为静音
posterURL规定视频正在下载时显示的图像,知道用户点击播放按钮

perload

auto

metadata

none

出现该属性,则视频在页面加载时进行加载,并预备播放。

如果使用 "autoplay" 则忽略该属性

srcURL要播放的视频的url
widthpixels设置视频播放器的宽度

总结:

  • 多媒体标签在不同浏览器下情况不同,存在兼容性问题
  • 谷歌浏览器把音频和视频标签的自动播放都禁止了
  • 谷歌浏览器中视频添加muted标签可以自己播放

HTML5 Geolocation(地理位置)

(内容来自菜鸟教材)

HTML5 Geolocation(地理位置) API 用于获得用户的地理位置

(该特性需要经过用户同意,否则用户位置信息是不可用的)

var x=document.getElementById("demo");
function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
    else
    {
        x.innerHTML="该浏览器不支持获取地理位置。";
    }
}
 
function showPosition(position)
{
    x.innerHTML="纬度: " + position.coords.latitude + 
    "<br>经度: " + position.coords.longitude;    
}
  • 检查是否支持地理定位
  • 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
  • 如果 getCurrentPosition() 运行成功,则向参数showPosition中规定的函数返回一个 coordinates 对象
  • showPosition() 函数获得并显示经度和纬度

处理错误和拒绝

function showError(error)
{
    switch(error.code) 
    {
        case error.PERMISSION_DENIED:
            x.innerHTML="用户拒绝对获取地理位置的请求。"
            break;
        case error.POSITION_UNAVAILABLE:
            x.innerHTML="位置信息是不可用的。"
            break;
        case error.TIMEOUT:
            x.innerHTML="请求用户地理位置超时。"
            break;
        case error.UNKNOWN_ERROR:
            x.innerHTML="未知错误。"
            break;
    }
}

错误代码:

  • Permission denied - 用户不允许地理定位
  • Position unavailable - 无法获取当前位置
  • Timeout - 操作超时

在地图中显示结果

在地图中显示结果,需要访问可使用的经纬度的地图服务,比如谷歌地图或百度地图

下面例子使用返回的经纬度数据在谷歌地图中显示位置(使用静态图像)

function showPosition(position)
{
    var latlon=position.coords.latitude+","+position.coords.longitude;
 
    var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
    +latlon+"&zoom=14&size=400x300&sensor=false";
    document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";
}

新增input标签

 新增表单属性

 HTML5  Web存储

        该存储方法是比cookie更好的本地存储方式

        使用html5可以在本地存储用户的浏览数据

        Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能.

        数据以 键/值 对存在, web网页的数据只允许该网页访问使用

客户端存储数据的两个对象为localStorage和sessionStorage

localStorage用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除        
sessionStorage

用于临时保存统一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据

使用web存储前,应检查浏览器是否支持localStorage和sessionStorage

不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

  • 保存数据:localStorage.setItem(key,value);
  • 读取数据:localStorage.getItem(key);
  • 删除单个数据:localStorage.removeItem(key);
  • 删除所有数据:localStorage.clear();
  • 得到某个索引的key:localStorage.key(index);

提示: 键/值对通常以字符串存储,你可以按自己的需要转换该格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值