整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML中的定位

次我们来说一下,HTML网页中的定位,有很多小伙伴一定好奇,为什么我们写的代码都是按顺序罗列的而在网页的展示效果中,我们的各种样式,标签,图片等东西都是出现在网页的各个位置,网页看起来很美观,各种盒模型摆放合理,这是因为在HTML中有定位的能力,今天我们就来学习一下。

position在英语中是位置的意思,而在我们CSS代码中position也是跟位置有关的,position有三个属性值分别为relative(相对定位:相对于自己原来的位置进行定位,但保留自己原来的位置,别的元素无法占用),absolute(绝对定位:相对于有定位的父级进行定位,如果没有则相对于文档进行定位,定位会脱离文档,不保留原来的位置,会和原来的文档不在一个层),fixed(位置定位:他的位置不会随着滑轮的滚动而改变较常见于弹窗广告,他也会脱离文档流)。

我们说完了position,接下来我们就说说他是怎么进行定位的,我们有left,top,right,bottom,五个属性分别对应 距左边,距上边,距右边,距下边,大家注意到我在每个方向前都加了个字,我们所做的定位是距各个方向的距离而不是移动,例:left:200px,是向右移动200像素,他的意思是距离左边增加200像素。在我们实际的编程中一般都不常用bottom,我们知道,滑轮是可以一直往下滑的,所以我们相对于底部定位的话就很困难。

我们来通过代码和结果来看一下:


没有定位的样式


加了relative


加了relative的结果

上面这个结果图看着比例不太对是因为作者截图没截好[捂脸]

我们可以看出猫图片并没有移动,而是给兔子图片留着位置。


加了absolute


加了absolute的结果

这个结果我们可以看出猫图片向前移动了,并没有保留兔子图片原来的位置


加了fixed

代码中的<br>是为了使滑轮可以滑动,以便更好的展示效果。

<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

用了fixed的效果展示。

以上的代码样式只对兔子图片起作用,我没有给猫添加任何样式,猫图片只是作为参照物。

SS 有三种基本的定位机制:普通流、浮动和绝对定位。

在CSS中一共有N种定位方式,其中,static ,relative,absolute三种方式是最基本最常用的三种定位方式。position取值:

static 默认定位方式

relative 相对定位。相对于原来的位置,但是原来的位置仍然保留。理解为棋盘上棋子的排列:

棋子从左往右排列,达到边缘时移到下一行。棋子排列方式是由display决定。样式属性display的值为block的元素自动放在下一行(默认),而为inline的元素自动放在同一行,位于前一个元素后面。对象不可层叠,依据left,right,top,bottom等属性在正常文档流中偏移自身位置

absolute 绝对定位

html5 地理定位

html5 Geolocation API用于获得用户的地理位置

鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的

注意:Geolocation(地理定位)对于拥有GPS的设备,地理定位更加精确

Geolocation API的主要方法是gerCurrentPositon,它用来获得用户的位置

下面是一个简答的地理定位实例,可返回用户位置的经度和纬度:

var x=document.getElementById("demo");

function getLocation(){

if(navigator.geolocation){

navigator.geolocation.getCurrentLocation(showPositon);}

else{

x.innerHTML="该浏览器不支持获取地理位置."}

}

function showPosition(position){

x.innerHTML="纬度:"+position.coords.latitude+

"<br>经度:"+position.coords.longitude;}

实例解析:

●检测是否支持地理定位

●如果支持,则运行gerCurrentPosition()方法.如果不支持,则向用户显示一段信息

●如果getCurrentPostion()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象

●showPosition()函数获得并显示经度和纬度

上面的例子是一个非常基础的地理定位脚本,不含错误处理

你需要先熟悉JavaScript才能理解和使用API

如果gerCurrentPosition()运行成功,则getCurrentPosition()方法返回对象.始终返回latitude,longtitude以及accuracy属性.如果可用,则会返回其他下面的属性:

●coords.latitude:十进制数的纬度

●coords.longtitude:十进制的经度

●coords.accuracy:位置精度

●coords.altitude:海拔,海平面以上以米计

●coords.altitudeAccuracy:位置的海拔精度

●coords.heading:方向,从正北开始以度计

●coords.speed:速度,以米/每秒计

●timestamp:响应的日期/时间

二 html5 拖放

拖放(Drag和drop)是html5标准的组成部分

拖放是一种常见的特性,即抓取对象以后拖到另一个位置

在html5中,拖放是标准的一部分,任何元素都能够拖放

★设置元素为可拖放

首先,为了使元素可拖动,需要把draggable属性设置为true:

<img draggable="true">

★拖动什么-ondragstart和setData()

然后,规定当元素拖动时,会发生什么

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

function drag(ev){

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

在这个例子中,数据类型是"Text",值是可拖动元素的id("drag1")

★放到何处-ondragover

ondragover时间规定在何处放置被拖动的数据

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

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

event.preventDefault()

★进行放置-ondrop

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

function drop(ev){

ev.preventDefault();

var data=ev.dataTransfer.getData("Text");

ev.target.appendChild(document.getElementById(data));}

三 html5 SVG

什么是SVG?

●SVG指可伸缩矢量图形(Scalable Vector Graphics)

●SVG用于定义用于网络的基于矢量的图形

●SVG使用XML格式定义图形

●SVG图像在放大或改变尺寸的情况下其图形质量不会损失

●SVG是万维联盟的标准

在html5中,你能够直接将SVG元素嵌入html页面中

要使用SVG绘制图形,你首先需要创建一个<svg>标签

<svg width="1000" height="1000"></svg>

要创建一个圆形,需要添加一个<circle>标签

下面是SVG代码:

<svg width="1000" height="1000">

<circle cx="100" cy="50" r="40" fill="red" />

</svg>

●cx和cy属性定义圆点的x和y坐标.如果省略cx和cy,圆的中心会被设置为(0,0)

●r属性定义圆的半径

运行效果如下:


上一篇:HTML &lt;html&gt; 标签
下一篇:HTML 脚本