要回家了有点按捺不住心里的躁动,来点简单轻松的话题。
这是个有趣的问题,应该有不少人搜过,我也搜过。出现这个问题主要还是滥用块级元素,或者是不会使用一些小技巧。举个例子,有时候我们想实现如下表单效果:
但有时候写着写着会变成下面的样子:
按我从以前遇到过情况来说,出现上面的情况的原因,可能有2个:
第一,就是可能在某个地方<label>被设置块级元素包住了
解决方法: 在外部样式使用 display: inline-block
第二,就是<label>的样式使用了 display: block
所以如果以后在写表单的时候,出现这个问题,可以从上面2个方向去查找原因,以及找出相应的解决方法。
(1)、<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html>标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。使用 <!Doctype>会让文档中的所有盒子模型以w3c标准盒子模型呈现。
(2)、标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
在HTML与CSS的标准化未完成之前,各个浏览器对于HTML和CSS的解析有各自不同的实现,而有很多旧的网页都是按照这些非标准的实现去设计的。在HTML与CSS标准确定之后,浏览器一方面要按照标准去实现对HTML与CSS的支持,另一方面又要保证对非标准的旧网页设计的后向兼容性。因此,现代的浏览器一般都有两种渲染模式: 标准模式 和 怪异模式 。在 标准模式 下,浏览器按照HTML与CSS标准对文档进行解析和渲染;而在 怪异模式 下,浏览器则按照旧有的非标准的实现方式对文档进行解析和渲染。这样的话,对于旧有的网页,浏览器启动怪异模式,就能够使得旧网页正常显示;对于新的网页,则可以启动标准模式,使得新网页能够使用HTML与CSS的标准特性。
Reference1 - h5新增标签
Reference2 - HTML元素分类
Reference3 - html标签分类及常用元素
Reference4 - HTML5常用标签分类
本周我大概用了六天的时间完成了html和css的复习、制作考核网页以及完成了学长布置的五个学习小任务,总的来说,虽然完成了这一周的学习,但是对于一些知识点掌握的不是很牢固,使用不太熟练,之后还需要多加练习,对于本周的学习我有如下总结:
对于写网页需要的基础知识一定要牢牢掌握,比如,每个网页都需要的导航栏,一定要熟练掌握;下拉菜单最常用的是 ul 和 li 标签,也就是列表元素;对于一些标签,一定要知道是块级元素还是行内元素,要掌握他们之间的转换方法,这个也是非常常用的。对于css的盒子模型,一定要认真地学习,并且能熟练的运用。
是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。 引入d性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、 对齐和分配空白空间。
d性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为d性容器。
d性容器内包含了一个或多个d性子元素。
注意: d性容器外及d性子元素内是正常渲染的。d性盒子只定义了d性子元素如何在d性容器内布局。
d性子元素通常在d性盒子内一行显示。默认情况每个容器只有一行。
当为父盒子设为flex布局,子元素的float、clear和vertical—align属性将失效
flex布局原理:通过给父盒子添加flex属性,来控制子盒子的位置好排列方式
flex布局父项常见的属性:
1.flex-diretion:设置主轴的方向
默认的主轴方向是x轴方向,水平方向;默认的侧轴方向是y轴方向,水平向下
属性值:row 默认值从左到右
row-reverse 从右到左
column 从上到下
column 从下到上
2.jusity-content:设置主轴上的子元素排列方式
属性值: flex-start 默认值从头开始 如果主轴是x轴,则从左到右
flex-end 从尾部开始排列
center 在主轴居中对齐(如果主轴是x轴则水平居中)
space-around平分剩余空间
space-between 先两边贴边再平分剩余空间(重要)
3.flex-wrap:设置子元素是否换行
属性值: nowrap 默认子元素不换行 如果装不下,会缩小子元素的宽度,一块放到父元素中
wrap 换行
4.align-content:设置侧轴的子元素排列方式(多行 需要换行) 单行无效
属性值: flex-start 默认值在侧轴的头部开始排列
flex-end 在侧轴的尾部开始排列
center 在侧轴中间显示
space-around 子轴在侧轴平分剩余空间
space-between 轴在侧轴先分布在两头,再平分剩余空间
stretch 设置子项元素高度平分父元素高度
5.align-items:设置侧轴的子元素排列方式(单行)
属性值: flex-start 从上到下
flex-end 从下到上
center 挤在一起(垂直居中)
stretch 拉伸(默认值) 使用时子盒子不要给高度
例如:子元素居中 默认主轴是x轴
主轴居中 jusity-content:center
侧轴居中 align-items:center
6.flex-flow:复合属性,相当于同时设置了flex-diretion和flex-wrap
flex布局子项常见属性
1.flex定义子项目分配剩余空间,用flex来表示占多少份数
flex:<number>默认值 0
2.align-self控制子项自己在侧轴的排列方式
3.order属性定义子项的排列顺序(前后顺序)
给父元素添加 display:grid
display关于网格的取值分为两个,grid(块网格)和 inline-grid (行内网格 行内块)
grid 容器从上向下排列
inline-grid 容器从左向右排列
grid-template-row规定行属性
grid-template-column规定列属性
1.绝对大小(根据列数或者行数确定值得个数)
grid-template-row:200px 200px 200px
grid-template-column:200px 200px 200px
2.百分比(根据列数或者行数确定值得个数)
grid-template-row:33.33% 33.33% 33.33%
grid-template-column:33.33% 33.33% 33.33%
3.repeat函数
grid-template-rows: repeat(3,33.3%)
grid-template-columns: repeat(3,33.3%)
4.repead auto-fill 自动填充
grid-template-rows: repeat(auto-fill,33.3%)
grid-template-columns: repeat(auto-fill,33.3%)
5.fr 片段
grid-template-rows: 100px 1fr 300px
grid-template-columns: 100px 1fr 300px
6.minmax
grid-template-rows:minmax(100px,200px) 200px 300px
grid-template-columns:200px 200px 200px
7.auto
grid-template-rows: 100px auto 300px
grid-template-columns: 100px auto 300px
列间距
1.grid-row-gap: 10px
grid-column-gap: 10px
复合写法
grid-gap: 10px 10px
指定区域
1.grid-template-areas: 'a b c '
'd e f'
'g h i'
区域合并时 需要让合并的区域名字相同
grid-template-areas: 'a a c '
'd e f'
'g h i'
.box div:nth-child(1){
grid-area: a
}
以上两种网页布局方式是我制作网页时比较常用的,也是学习前端必须掌握的。
除了以上这些,还有很多是我们需要掌握的,加油吧继续学习!!!!!!下周分享js学习总结
一、 HTML5新增的标签
(1)header nav main footer section article hgroup figure figcaption aside
video audio canvas
(2)如何让新标签兼容低版本浏览器: html5shiv.js
二、 HTML5新增的表单控件
一、表单控件的新属性
<input type="text" placeholder="" required autofocus pattern="abc" >
二、新增的表单控件
(1)<input type="email">
(2)<input type="url">
(3)数字控件: type="number"
(4) 滑动组件: type="range"
(5) 拾色器: type="color"
(6) 日期控件: type="date"
三、本地存储
1、 三种本地存储 : cookie webStorage(localStorage sessionStorage)
2、localStorage的API
(1)写入: localStorage.setItem(键,值) //值只能是字符串
localStorage.user = "123" localStorage["user"] = "123"
(2)读取 var user = localStorage.getItem("user")
var user = localStorage.user
(3)删除: localStorage.removeItem("user") localStorage.clear()
(4)修改: localStorage.setItem("user","890")
3、sessionStorage的API
sessionStorage.setItem(键,值)
sessionStorage.getItem(键)
sessionStorage.removeItem(键)
sessionStorage.clear()
**********重点**********
4、cookie webStorage(localStorage sessionStorage)三者的区别
四、离线存储
(1) *.manifest (*.appcache)
index.html <html manifest="*.manifest">
(2) 理解离线存储的更新方式
五、移动端的布局思路:
1、设备像素比(倍率) 逻辑像素尺寸 (360px 320px 375px 414px)
window.devicePixelRatio
2、 <meta name="viewport" content="width=device-width,maximum-
scale=1.0,minimum-scale=1.0,initial-scale=1.0,user-scalable=no"">
3、使用rem单位
六、地理定位
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(success,error,{
timeout: 5000
})
function success(pos){
纬度: pos.coords.latitute
经度: pos.coords.longtitude
}
}
navigator.geolocation.watchPosition(success)
七、地理定位和百度地图API的结合
八、视频,音频 <video autoplay="autoplay" controls="controls" loop="loop" poster=""
preload="preload"> <audio>
九、移动端事件:
(1) ontouchstart ontouchmove ontouchend
(2) 如何判断是否为移动端: if ("ontouchstart" in document){}
(3) 移动端事件的事件对象及常用属性
e.touches[0].clientX e.touches[0].clientY e.touches[0].target
(4) 移动端常见问题及解决方案:
a、 click事件 300ms的延迟: <1>zepto的tap事件 (2) fastclick.js
b、 zepto的tap事件有点透问题 : (1) fastclick.js
(5) zepto的touch模块: tap singleTap doubleTap longTap
swipeLeft swipeRight swipeUp swipeDown
十、swiper.js的使用 (参考官网)
十一、 canvas
(1) <canvas width="600" id="can"></canvas> 300*150
(2) var can = document.getElementById("can")
var cxt = can.getContext("2d")
cxt.beginPath()
cxt.moveTo(100,200)
cxt.lineTo(200,400)
cxt.strokeStyle = '#f00'
cxt.stroke()
cxt.clearRect(0,0,200,300)
context.globalCompositeOperation="destination-out" (了解)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)