面试题CSS02【21-10-14】

一、列举CSS中常用的伪类样式

        伪类

                :link, :visited, :hover, :active, :focus, :first-child, :last-child, :nth-child, :nth-last-child, :not()

        伪元素

                ::first-letter, ::first-line, ::before, ::after

        伪类:CSS常用伪类使用详解_Allenyhy的博客-CSDN博客_伪类怎么使用

        伪元素:列举css伪类与伪元素_^命铭的博客-CSDN博客

二、超链接访问过后 hover 样式就不出现的问题是什么?如何解决?

        被点击访问后的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序:L-V-H-A(link, visited, hover, active)

三、简单描述 position 几种定位的区别

        1.static(静态,默认值)  2.relative(相对)  3.absolute(绝对)  4.fixed(固定)

        position的8种定位方式_web_xyk的专栏-CSDN博客_position定位

        省流:

        父元素设置relative,子元素设置absoute,fixed相对于浏览器固定位置

        默认static    当前文档流

        relative        当前文档流,可以left和right

        absolute      基于父级元素定位,如果没有就body

四、简单描述 display 的取值及区别

        display:none,  inline,  inline-block,  flex,  table,  list等

        java中display中的属性_全面解析display属性_墨剑心的博客-CSDN博客

        display:none与visibility:hidden的区别

                display与visiblilty都是设置元素的显式方法,使用display: none;的元素在隐藏后不会占用原来的页面空间。 其他元素可以占用用这个位置。

                使用visibility:hidden的元素隐藏后占用原来的空间,只是对用户来说是透明的,会影响其他元素的位置。

                使用visibility属性设置元素的隐藏属性,并不能减少打开网页的速度,因为这个元素总是会随着页面一起下载。而通过display属性设置的却不一样,该元素相当于在页面中不存在,因此能够缩短页面加载时间。

五、rgba()和 opacity 的透明效果有什么不同

        opacity:是属性,元素透明,可以被继承,取值0-1

        rgba:是函数,计算后是个属性值,背景透明,不继承,取值0-1

六、说说如何实现页面元素不可见

        css实现元素不可见的5种方法_是一座岛-CSDN博客

        CSS

                display:none

                height:overflow

                visibility:hidden

                opacity:0

                transform:scale(0)

        js

                removeChild

七、CSS 实现子元素在父元素水平垂直居中

        1、子元素:行内元素或行内块元素

              设置父元素:

                        text-align

                        line-height+height

                                子元素vertical-align(table)(垂直居中)

        2、子元素:块

                postion:top+left+margin

                        兼容性好,css2

                        但是元素的宽高必须已知

                css

                        transform:translate(-50%, -50%)

        3、display:flex

八、说一下 transition 和 margin 的百分比根据什么计算

        transform:translate(-50%):基于当前元素

         margin:基于父元素

九、请用 css3 描述幻灯片实现的思路

        深入理解CSS过渡transition - 小火柴的蓝色理想 - 博客园

        CSS变形transform(2d) - 小火柴的蓝色理想 - 博客园

        用css3制作幻灯片效果_--Rainman的博客-CSDN博客_css幻灯片效果

十、如何判断某个值为数组类型

        如何判断某变量是否为数组数据类型_360问答

        省流:

        instanceof Array -> 但是instanceof Object也会返回true

        Array.isArray(polyfill)【额外看看一文搞清楚前端 polyfill - 知乎】【Polyfill简介_E_li_na的博客-CSDN博客_polyfill_7_2_5

        Object.prototype.toString.call([])=== '[object Array]'

        [].constructor === Array

        [].__proto__ === Array.prototype

十一、编写 ajax 请求代码(不使用第三方函数库)

var xhr = new XMLHttpRequest();
		xhr.open('GET', 'http://139.9.209.237/herowebapi/power/list', true);
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {
				var res = JSON.parse(xhr.responseText);
				if (res.Code != 100) {
					return;
				}
				tbody.innerHTML = '';
				res.Data.forEach(function(item) {
					var opt = document.createElement('option');
					opt.innerText = item.Name;
					opt.value = item.Id;
					ddlPower.appendChild(opt);
				})
				console.log(res);
			}
		}
		xhr.send();



var xhr = new XMLHttpRequest();
		xhr.open('POST', 'http://139.9.209.237/herowebapi/member/login', true);
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {
				var res = JSON.parse(xhr.responseText);
				console.log('res', res);
				console.log(res.Code);
				if (res.Code == 100) {
					isLogin = true;
					divLogin.style.display = 'none';
					divUser.style.display = 'block';
					nickName = res.Data.NickName;
					var lblUserName = document.querySelector('#lblUserName');
					lblUserName.innerText = nickName;
					var close = document.querySelector('#close');
					close.onclick = function() {
						isLogin = false;
						divLogin.style.display = 'block';
						divUser.style.display = 'none';
					}
				} else {
					alert('登录失败!');
				}
			}
		}
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr.send(`email=${email}&password=${pass}`);

 第二种:fetch(简单但是性能差)

        Fetch - 简书

猜你喜欢

转载自blog.csdn.net/weixin_43961652/article/details/120899395