CSS面试题

css 常见面试题 #box { 阅读详情

1.CSS3

1.伪类选择器::link,:visitied,:hover,:checked,:active.....
2.伪元素选择器:::before,::after(创建的元素属于行内元素,伪元素选择器和标签选择器一样,权重为1)
3.选择器:nth-child(n) nth-of-type(n)
4.filter函数:例如:filter: blur(5px);blur模糊处理,数值越大越模糊
5.calc函数:让在生命css属性时执行一些计算,例如:width: calc( 100% - 80px )
6.过渡和动画
7.阴影:text-shadow,box-shadow

2.元素水平居中的方法

1.弹性盒
	display: flex
	justify-content: center; align-item: center
2.定位
	position: absolute
	top: 0; right: 0; bottom: 0; left: 0; margin: auto
3.margin + 定位
	position: absolute
	left: 50%; top: 50%; margin-top: -50px(元素高的一半),margin-left: -50px(元素宽的一半)
4.transform: translate + 定位
	position: absolute
	left: 50%; top: 50px; transform: translate( -50%, -50%)

3.盒模型

box-sizing属性的三个值:content-box,border-box,inherit
	content-box: width和height从content算起,不包含border和padding
	border-box: width和height等于border+padding+width/height
	inherit: 指定 box-sizing 属性的值,应该从父元素继承

4.flex

flex-direction: row | row-reverse | column | column-reverse 设置主轴方向
justify-content: flex-start | flex-end | center | space-between | space-around 设置在主轴上的对齐方式
align-items: flex-start | flex-end | center | baseline | stretch 设置在交叉轴上对齐方式
flex-wrap: nowrap | wrap | wrap-reverse 设置是否换行
align-content: flex-start | flex-end | center | space-between | space-around 设置
around: 设置多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用
align-self: auto | flex-start | flex-end | center | baseline | stretch 设置单个项目与其他项目不一样的对齐方式
order: 数值越小,排列越靠前,默认为0,定义项目的排列顺序
flex-grow: 默认为0,即如果存在剩余空间,也不放大
flex-shrink: 默认为1,即如果空间不足,该项目缩小

flex-grow: 定义项目的放大比例,即使存在空间,也不会放大
flex-shrink: 定义了项目的缩小比例,当空间不足的情况下会等比例的缩小,如果定义个item的flow-shrink为0,则为不缩小
flex-basis:定义了在分配多余的空间,项目占据的空间
flex: 1是 flex-grow和flex-shrink,flex-basis的简写,默认值为0 1 auto

5.如何让一个元素在页面上看不见

1.display:none,这种方式可以使元素彻底从文档中删除
2.visibility:hidden,元素会从页面中消失,它原本占据的空间会被保留
3.opacity:0
4.margin-left:-100%

6.过渡和动画

相同点:都是随着时间改变元素的属性值
不同点:transition需要触发一个事件(hover事件或click事件等)才会随时间改变其css属性;而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值。从而达到任何一种动画效果,css3的animation就需要明确的动画属性值

7.BFC

BFC的目的:形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素
BFC:块级格式化上下文,它是页面中的一块渲染区域,并且有一套属于自己的渲染规则:
	1.内部的盒子会在垂直方向上一个街一个的放置
	2.对于同一个BFC的两个相邻的盒子的margin会发生重叠,与方向无关
	3.每个元素的左外边距与包含块的左边界相接触(从左到右)
	4.BFC的区域不会与float的元素区域重叠
	
触发BFC的条件:
	1.浮动元素:float的值为left,right
	2.overflow的值不为visible,为auto,scroll,hidden
	3.display的值为inline-block等等
	4.position的值为absolute和fixed

8.两栏布局/三栏布局

两栏布局:
	1.利用浮动
		- 将左边元素宽度设置为200px,并且设置向左浮动
		- 将右边元素的margin-left设置为200px,宽度设置为auto
	2.浮动+BFC
		- 利用浮动,左侧元素设置固定大小,并左浮动
		- 右侧元素设置overflow:hidden;这样右侧就触发了BFC,BFC的区域不会与浮动元素发生重叠,所以两侧就不会发生重叠
	3.利用flex布局
		- 利用flex布局,将左边元素设置为固定宽度200px,将右边的元素设置为flex:1

三栏布局:
	1.流体布局
		- 左栏左浮动,右栏右浮动
		- 中间margin两边
	2.BFC布局
		- 左右两边浮动
		- 中间用overflow:hidden触发BFC
	3.flex布局
		- 左右两侧固定宽度
		- 中间元素给flex:1
	4.Table布局
		- 先设置外边盒子采用表格布局(display: table)
		- 设置子元素为表格单元格格式(display:table-cell)
		- 左右两栏设置宽度,中间无需设置

9.css画三角形

.sjx {
        width: 0;
        height: 0;
        border-left: 10px solid red;
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        border-right: 10px solid transparent;
    }

10.当行/多行文本溢出显示省略号

// 当行文本溢出
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis
// 多行文本溢出
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;

11.css提高性能的方法

1.内联首屏关键css
2.异步加载css
3.资源压缩
4.合理使用选择器
5.减少使用昂贵的属性
6.不要使用@import

12.生命动画的关键字是什么

@keyframes 

13.rem适配怎么实现

常用适配方案
1.rem & vw
2.rem & 媒体查询

14.PC端适配怎么处理

15.移动端适配怎么处理

16.CSS选择器优先级

!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

17.双飞翼布局和圣杯布局

18.CSS哪些属性可以继承,哪些不可以继承

可继承:
	1.字体属性:font-family,font-weight,font-size,font-style
	2.文本属性:text-indent,text-align,line-height,word-spacing,letter-spacing,text-transform,color
	3.元素可见性:visibility
	4.列表布局:list-style
	5.光标属性:cursor
不可继承:
	1.display
	2.文本属性:vertical-align,text-decoration,text-shadow,white-space,unicode-bidi
	3.盒子模型属性:width,height,margin,border,padding
	4.背景属性:background,background-color,background-image,background-repeat
	5.定位属性:float,clear,position,top,right

19.gird网格布局

在元素上设置display:grid 或 display:inline-grid 来创建一个网格容器
	- display:grid 则该容器是一个块级元素
	- display: inline-grid 则容器元素为行内元素
grid-template-columns 属性设置列宽,grid-template-rows 属性设置行高
grid-row-gap 属性、grid-column-gap 属性分别设置行间距和列间距。grid-gap 属性是两者的简写形式
grid-template-areas 属性用来定义区域,一个区域由一个或者多个单元格组成
划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。顺序就是由grid-auto-flow决定,默认为行,代表"先行后列",即先填满第一行,再开始放入第二行
justify-items 属性设置单元格内容的水平位置(左中右),align-items 属性设置单元格的垂直位置(上中下),place-items属性是align-items属性和justify-items属性的合并简写形式
justify-content属性是整个内容区域在容器里面的水平位置(左中右),align-content属性是整个内容区域的垂直位置(上中下)

20.CSS3动画有哪些

1.transition 实现渐变动画
	- property:填写需要变化的css属性
	- duration:完成过渡效果需要的时间单位(s或者ms)
	- timing-function:完成效果的速度曲线
	- delay: 动画效果的延迟触发时间
2.transform 转变动画
	常用的功能:
		- translate:位移
		- scale:缩放
		- rotate:旋转
		- skew:倾斜
3.animation 实现自定义动画
	8个属性如下:
		- animation-duration,指定动画完成一个周期所需要时间,单位秒(s)或毫秒(ms),默认是 0
		- animation-timing-function,指定动画计时函数,即动画的速度曲线,默认是 "ease"
		- animation-delay,指定动画延迟时间,即动画何时开始,默认是 0
		- animation-iteration-count,指定动画播放的次数,默认是 1
		- animation-direction 指定动画播放的方向
		- animation-fill-mode,指定动画填充模式。默认是 none
		- animation-play-state,	指定动画播放状态,正在运行或暂停。默认是 running
		- animation-name,指定 @keyframes 动画的名称

21.link和@import的区别

1.link使XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS
2.link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载
3.link是XHTML标签,无兼容问题;@import是在css2.1提出的,低版本的浏览器不支持
4.link支持使用JavaScript控制DOM去改变样式,而@import不支持

22.display:none和visibility:hidden的区别

1.display:none不会占据任何空间,visibility:hidden只是内容不可见
2.display:none是非继承属性,visibility:hidden是继承属性

23.伪元素和伪类的区别和作用

伪元素:在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成
伪类:将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素
总结: 伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变

24. ::before 和 :after 的双冒号和单冒号有什么区别

冒号(:)属于伪类,双冒号(::)属于伪元素

25.z-index属性在什么情况下会失效

1.父元素position为relative时,子元素的z-index失效。解决:父元素position改为absolute或static;
2.元素没有设置position属性为非static属性。解决:设置该元素的position属性为relative,absolute或是fixed中的一种;
3.元素在设置z-index的同时还设置了float浮动。解决:float去除,改为display:inline-block;

26.margin重叠

  • 两个margin产生折叠的必备条件:

    1. 必须处于常规文档流的块级盒子,并且处于同一个BFC当中
    2. 没有线盒,没有空隙,没有padding和border将他们分割
    3. 都处于垂直方向相邻的外边距
  • marign重叠是指在垂直方向上,相邻的两个元素的margin会发生重叠的原因,一般来说分为以下4种情况;

    1. 相邻兄弟元素的margin-bottom和margin-top发生重叠,这时候我们设置一个元素为BFC即可解决
    2. 父元素的margin-top和子元素的margin-top发生重叠,他们发生重叠是因为这两个元素是相邻的,通过以下方式解决:
      2.1:为父元素设置padding-top或border-top来分割他们
      2.2:设置父元素为BFC
      2.3:父元素和第一个元素之间添加一个内联元素来进行分割
    3. 高度为auto的父元素的margin-bottom和最后一个子元素的margin-bottom发生重叠,他们发生重叠的一个原因是他们是相邻的,另一个原因是父元素的高度是不固定的,可以通过以下方式解决:
      3.1:为父元素设置padding-bottom或border-bottom将他们分开
      3.2:把父元素设置为BFC
      3.3:父元素和最后一个子元素之间添加一个内联元素进行分割
      3.4:为元素设置一个高度,height,max-height或者min-height都可以解决
    4. 没有内容的元素,自身的margin-top和margin-bottom发生重叠,可以通过以下方法解决:
      4.1:元素设置padding和border
      4.2:给元素设置一个高度

27.position

1.position: static
	static属性为默认值,没有定位,元素出现在正常的流中,元素设置相对于原本位置的定位,元素并不脱离文档流。
2.position: relative
	相对于自身原本的位置发生改变,不脱离文档流
3.position: absolute
	相对于带有position属性的父级来定位;如果父级都没有position属性,则相对于document来定位(body),脱离文档流
4.position: fixed
	与absolute一样
5.position: sticky
	在屏幕范围内时该元素的位置并不收到定位影响,当该元素的位置将要移出偏移范围时,定位又变成fixed,脱离文档流

28.常见的meta的标签有哪些

1.charset:HTML文档的编码类型
2.keywords:页面关键字
3.description:页面描述
4.viewport:可以控制视口的大小和比例

29.img和srcset属性的作用

srcset属性用于浏览器根据宽,高和像素比来加载响应的图片资源

30.title和h1的区别,b和strong的区别,i和em的区别

  • title和h1:

    • title:显示在网页标题上,h1:显示在网页内容上
    • 在seo的角度,title比h1好
  • b和strong:

    • b:只有加粗的样式,没有实际的意义。strong:对标签中的内容起到强调作用
  • i和em:

    • i:只是一个倾斜标签,没有实际意义。em:对标签中的内容起到强调的作用。

31.label的作用是什么?如何使用

label标签是用来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。
使用:
	1.用label标签将input标签包裹起来
		<label><input type="checkbox" name="like" value="足球" id="check1">足球</label>
	2.在input标签中定义id,再用label标签将内容包裹起来
		<input type="checkbox" name="like" value="象棋" id="check4"><label for="check4">象棋</label>

32.display的block,inline和inline-block的区别

  1. block:会独占一行,多个元素会另起一行,可以设置width,height,margin和padding属性。
    2.inline:元素不会独占一行,设置width,height属性无效。但可以设置水平方向的margin和padding属性,不能设置垂直方向的padding和margin
  2. inline-block:将对象设置为inline对象,但对象的内容作为block对象呈现,之后的内敛对象会被排列在同一行。

32.li与li之间有看不见的空白间隔是什么原因引起的?如何解决

  • 浏览器默认会把display属性为inline或者inline-block元素间的空白字符(空格换行tab)渲染成一个空格。也就是我们上面li元素换行产生的换行符,而它会变成一个空格,当然空格就占用一个字符的宽度。
  • 解决办法:
    • li的letter-space设置为normal

33.为什么需要清除浮动?清除浮动的方式?

为了清除使用浮动元素产生的影响
方式:
	1.额外标签法:给谁清除浮动,就在其后添加一个空白标签
	2.父级添加overflow方法:触发BFC,实现清除浮动的结果
	3.使用after伪元素清除浮动: :after方式为空元素的升级版,好处是不用单独加标签了。
        .clearfix:after{ 正常浏览器,清除浮动
            content: ""; 注意:content:”“;里面尽量不带点
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
        .clearfix{
            *zoom: 1;
        }
    4.使用before和after双伪元素清除浮动
        .clearfix:before, .clearfix:after{
           content: "";
           display: table;
        }
        .clearfix:after{
           clear:both;
        }
        .clearfix{
           *zoom: 1;
        }

34.使用clear属性清除浮动的原理

35.栅格

css面试题 【代码】css面试题。 阅读详情

相关推荐

前端面试套餐:Vue面试题总结+JavaScript前端经典面试题+100道 CSS 面试题

前言 在逛技术网站时,在一篇文章下面看到了一条评论,这条评论仁者见仁智者见智。我单独放出来说,是因为他讲到了基础。基础是重要的一个学习环节,在面试中很多问题都不难,都是基础上内容,回不回的上就看你基础掌握的怎样了,面试官也从中知道你学的怎样。 评论 我因为学习兴趣浓,从测试到java到前端一路学过来,现在就处于什么都懂,什么都半桶水的尴尬局面。我因为喜欢前端界面而渐渐的专注于前端。广和精,这一对矛盾又统一的兄弟,在前端折腾死了很多人,我面试过的一些公司,一些说你深度不够,一些说你太过狭隘,聊下来我就想打人。

weixin_52546522的博客 1万+

CSS面试题整理汇总

CSS面试题汇总

山雀的博客 8240

十五道css面试题

目录 1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的? 2.CSS 中哪些属性可以继承? 3.CSS3 新增伪类有那些? 4、请解释一下 CSS3 的 Flexbox(弹性盒布局模型),以及适用场景? 5、浏览器是怎样解析 CSS 选择器的? 6、在网页中应该使用奇数还是偶数的字体?为什么呢? 7、抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题] 8、为什么不建议使用统配符初始化 css 样式。 9、如果需要手动写动画,你认为最小时间间隔是

m0_65450343的博客 7243

最全面试题CSS(含答案)

最全面试题CSS(含答案)

xiaozgm的博客 2万+

altium room 布局_ALtium 16相同重复模块PCB布局,复制布局走线

自己做了实际工程以后发现PCB器件名字后缀太长了,所以文章最后写了一下后缀的调整方法。第一种方法:1、建立子原理图如下,文件名CANM 2、之后新建一个顶层文件,文件名TOP,之后design—create sheet symbol form sheet or hdl。选择CANM,并放置到TOP中,如下 3、由于我们要多次调用CANM所以使用repeat命令修改如下: 4、之后根据自己的定义,连...

weixin_39609573的博客 5752

深入解析SAP F4帮助函数F4IF_INT_TABLE_VALUE_REQUEST的回调机制

本文深入解析了SAP ABAP开发中F4IF_INT_TABLE_VALUE_REQUEST函数的回调机制。通过剖析其工作原理与核心参数,详细阐述了如何利用回调函数实现F4帮助的多值返回、动态数据过滤及选择后校验等高级定制功能,并提供了实用的代码示例与调试技巧,帮助开发者高效应对复杂的屏幕交互需求。

weixin_29213827的博客 198

前端基础学习-el-form的label过长换行+根据label长度自动撑开

记录开发中遇到的一个小样式问题。先上效果图 这里主要是对样式进行更改 1、在需要换行的label进行改写,以及绑定class <el-form-item :label="'活动名称\n(换行)'" class="fold_label" prop="name"> <el-input v-model="filterForm.name"></el-input> </el-form-item> lab

小夭的博客 1万+

【ES】--Elasticsearch的分词器深度研究

分词器是ik_max_word,会将“龙马家书”拆分为“龙马”、“马家”、“家书”。然后filter配置的是edge_ngram_filter,在上面拆分的token词组基础上,按照edge_ngram_filter规则进一步拆分。从结果看:分词器是keyword,filter支持edge_ngram_filter,字符过滤器支持tsconvert【简繁体】。分词器是keyword,表明是不进行分词,但filtet中edge_ngram_filter是按照布长方式拆分token,所以得到如此结果。

寻梦友的博客 2442

CSS面试题汇总

在前端面试中,CSS 相关的知识点往往是面试官重点考察的内容。为了帮助大家更好地准备面试,本文汇总了一些常见的 CSS 面试题,并提供了详细的解答和分析。

前端小巷子的博客 1296

使用libx265对YUV进行h265编码

使用libx265对YUV进行h265编码

Embedded engineer 3079

电驱系统功率级“多合一”解决方案

如何提升电驱动系统的产品性能、减小能耗和进一步轻量化,以加强整车市场竞争力,是摆在国内外新能源车企面前的共同课题。为此,具有多年动力总成电子系统开发经验的美国著名半导体及电子解决方案专家——德州仪器(Texas Instrument)提出了多种功率级别“多合一”整合方案和设计思路,助力新能源车企提升技术优势。

yessunday的专栏 1372

值得收藏的26个css面试题,增强你的CSS基础!

CSS在网页设计中非常流行,可以减少结构内容中的复杂性和重复。本篇文章给大家分享26个基于css的面试题,可以增强你的CSS基础,快来学习吧。

qq_43067585的博客 869

Sharding Sphere JDBC使用Mybatis的saveBatch无法返回主键的问题

Sharding Sphere JDBC使用Mybatis的saveBatch无法返回主键的问题

HHCS231的博客 1832

前端高频面试题——CSS

如若设置为百分比,则代表的是以父元素宽度为基准,根据这个原理,可设置长宽比。css变量减少样式重复定义,比如同一个颜色值要在多个地方重复使用,以前通过less和sass预处理做到,现在css变量也可以做到,方便维护,提高可读性。会对当前组件(scope)下所有元素生成唯一的属性或类名,对所有 CSS 规则将携带唯一属性实现作用域的命名保护。BEM 有一个缺点,就是有些太长,可适当简化,只包裹该页面组件的根类名,但有可能增加样式冲突的风险。题目:css如何实现左侧固定300px,右侧自适应的布局?

2302_80480647的博客 2219

手把手教你学simulink(95.1)--PID控制实例:基于Simulink的PID控制温度控制系统建模与仿真

温度控制是工业自动化、家用电器、医疗设备以及航空航天等领域中常见的控制问题。通过精确的温度控制,可以提高生产效率、降低能耗并确保产品质量。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于各种温度控制系统。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的温度控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 793

cartographer如何使用2个反光柱子作为一个landmark

2个反光柱的摆放要求:靠着墙摆,因为我们只能从一侧看到2个反光柱,从两侧都看到至少需要3个反光柱来定位。 landmark检测原理:因为我们是从一侧看到2个反光柱,所以看到2个反光柱在一帧激光数据中会有顺序,有2种情形,如下图 这两种情形,我们发现 情形1: 这种情形2个反光柱子被检测到的激光角度小于180,我们认为大一些激光角度的是原点。 情形2: 这种情形2个反光柱子被检测到的激光角度大于180,我们认为小一些激光角度的是原点。 这样原点就固定下来,并是唯一的。2个反光柱构成的坐标系也就确定了。和激光坐

南北粉面馆 3827

史上最高质量css+html高频面试题

CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。在图片合并时,要把多张图片有序的、合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。BFC(块级格式化上下文),页面上的一个隔离的独立容器,一个创建了新的 BFC 的盒子是独立布局的,盒子内元素的布局不会影响盒子外面的元素。

2301_77729668的博客 2225

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

值得收藏的 104个 CSS 面试题

给大家分享104个 CSS 面试题,助你查漏补缺。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助 CSS 面试知识点总结 最近在整理 CSS 的时候发现遇到了很多面试中常见的面试题,本部分主要原作者在 Github 等各大论坛收录的 CSS 相关知识和一些相关面试题时所做的笔记,分享这份总结给大家,对大家对 CSS 的可以来一次全方位的检漏和排查,感谢原作者 CavsZho...

sunsineq的专栏 1196

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

100道CSS面试题及答案

本文精选100道CSS面试题,系统梳理CSS核心知识体系。主要内容包括:CSS基础概念(盒模型、选择器优先级、继承属性)、样式引入方式(内联/内部/外部样式表)、布局技术(浮动/Flexbox/Grid)、动画与过渡效果实现、响应式设计方法(媒体查询/视口单位)等。每道题目均附详细解答,例如标准盒模型与IE怪异盒模型的区别、Flex布局的容器与项目属性、CSS动画关键帧定义等。通过这些问题,读者可全面掌握CSS样式控制、现代布局方案及性能优化技巧,为前端面试和实际开发打下坚实基础。(149字)

sinat_37775891的博客 1127

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HTML + CSS 高频率面试题总结

初级程序员面试:HTML+CSS总结

qq_50787990的博客 1059

前端CSS面试题

CSS常见问题总结(150字) CSS选择器包括元素、类、ID、属性、后代、伪类等,优先级计算基于权重(内联>ID>类>元素)。盒模型由content、padding、border、margin组成,推荐box-sizing: border-box。布局方式如Flex(弹性)和Grid(网格)简化了居中与响应式设计。隐藏元素可用display: none(不占空间)或visibility: hidden(占空间)。移动端适配通过rem/vw单位和媒体查询实现。伪类(:hover)选择状态,

i520_1314的博客 989

《前端面试题:CSS3新特性》

本文详细解析了10大核心特性,包含代码示例和常见面试题解答,是掌握现代CSS开发的实用指南。重点推荐Flexbox/Grid布局组合,可解决90%的传统布局难题。

前端码农的博客 1417

HTML5 + CSS3面试题整理

...

计算机源码之家的博客 1万+
上一篇: JavaScript面试题
下一篇: react面试题
无穷已_
博客等级 码龄7年 1534粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值