芯が強い人になるESTJ-A

# html,css,js常用属性回顾

IT開発 Tags: 无标签 阅读: 197

重叠的2个元素,父子关系,父relative和子absolute定位。
重叠2个元素,兄弟关系,直接relative定位。
<link rel="stylesheet" href="css/style.css">
居中方法:
截屏2021-04-11 19.29.38.jpg
截屏2021-04-11 19.31.08.jpg
截屏2021-04-11 19.50.15.jpg
block,inline及inline-block的简单介绍
完整确切的说应该是 block-level elements (块级元素)
和 inline elements (内联元素)。
block元素通常被现实为独立的一块,会单独换一行;
inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满,inline元素设置宽高不起作用,需要第一步;转成块元素,再设置宽高。
大体来说HTML元素各有其自身的布局级别(block元素还是inline元素):
常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。
常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等

display:block
block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
block元素可以设置margin和padding属性

display:inline
inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
inline元素设置width,height属性无效。
inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。

display:inline-block
简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。
截屏2021-04-15 15.14.57.jpg
截屏2021-04-15 15.11.43.jpg
截屏2021-04-15 09.22.53.jpg
截屏2021-04-14 18.27.11.jpg
截屏2021-04-14 18.26.49.jpg

具体参考:
[css3]
截屏2021-04-12 20.14.04副本.jpg
截屏2021-04-12 20.14.45.jpg

截屏2021-04-10 10.19.15.jpg
截屏2021-04-10 10.20.07.jpg
截屏2021-04-10 10.20.39.jpg
截屏2021-04-10 10.21.29.jpg
截屏2021-04-10 10.22.29.jpg
截屏2021-04-10 14.56.27.jpg

js流程(所有流程)
<script src="js/script.js"></script>
第一步:获取对象
第二步:搞清楚,你获取的是类型,是数组?还是对象?搞不清楚类型=迷茫
第三步:
第四步:

querySelector:获取Dom对象
querySelectorAll:获取数组=getElementsByClassName

截屏2021-04-10 21.29.34.jpg
截屏2021-04-10 21.29.44.jpg
截屏2021-04-10 21.29.55.jpg
截屏-fix.jpg
截屏2021-04-10 21.46.31.jpg
截屏2021-04-10 22.04.02.jpg
截屏2021-04-10 21.51.37.jpg
截屏2021-04-10 22.05.41.jpg
截屏2021-04-10 22.05.58.jpg
截屏2021-04-10 22.06.20.jpg
截屏2021-04-10 22.06.38.jpg
截屏2021-04-10 22.07.16.jpg
截屏2021-04-10 22.08.27.jpg
截屏2021-04-10 22.12.32.jpg
截屏2021-04-10 22.12.40.jpg
截屏2021-04-10 22.12.46.jpg
截屏2021-04-10 22.14.24.jpg
截屏2021-04-10 22.14.37.jpg
截屏2021-04-10 22.15.27.jpg
截屏2021-04-10 22.15.39.jpg
截屏2021-04-10 22.18.17.jpg
截屏2021-04-10 22.18.28.jpg
截屏2021-04-10 22.18.47.jpg
截屏2021-04-10 22.19.03.jpg
截屏2021-04-10 22.19.09.jpg
截屏2021-04-10 22.19.15.jpg

[设置attribute,只能是dom,不能给数组设置属性]
var a = document.getElementBy("DIV");

1.使用classList返回所选元素的类名,是一个数组,一个类名占一个长度(a.classList.length)。

2.a.classList.add("classname1") ; 添加一个类名

3.a.classList.remove("classname2") ; 去掉一个类名

4.a.classLis.toggle("classname3"); 引号中的类名,有就删除,没有就添加。比较智能的结合了1,2点,用于切换十分方便

5.a.contains("classname4"); 判断一个类型是不是存在,返回true和false

classList兼容性:除了IE,其他浏览器兼容性都可以。

截屏2021-04-11 13.24.11.jpg
截屏2021-04-11 13.32.09.jpg
截屏2021-04-11 13.32.54.jpg
截屏2021-04-11 13.33.14.jpg
截屏2021-04-11 13.33.21.jpg

//常用函数封装,少写点!,一定要写return
var getElem = function(selector){

return document.querySelector(selector);

}

var getAllElem = function(selector){

return document.querySelectorAll(selector);

}

//封装,获取元素样式
var getCls = function(element){

return element.getAttribute('class');

}

//封装,设置元素样式
var setCls = function(element, cls){

return element.setAttribute('class', cls);

}

//封装,为元素添加样式,别忘记空格,否则样式都粘在一起,=Element.classList.add()
var addCls = function(element, cls){

var baseCls = getCls(element);
if(baseCls.indexOf(cls)=== -1){
    setCls(element, baseCls + ' ' + cls);
}

}

//封装,为元素删除样式,indexOf返回-1=没找到, outline AAA,=Element.classList.remove()
var delCls = function(element, cls){

var baseCls = getCls(element);
if(baseCls.indexOf(cls)!= -1){
    setCls(element, baseCls.split(cls).join(' ').replace(/\s+/g, ' '))
}

}