5.pug用法:

5.1层级:

需要按照阶梯层级来写pug代码,例如Html标签肯定包裹了Head和body标签,那html标签在第一行,head和body就必须在第二,三行,而且要缩进两个空格写,这里的head和body是同级的,所以他们必须保持一致的缩进

// 传统写法

// pug写法

html

head

body

h1

p

p

button

比较得出pug写法很简洁,而且不需要闭口,传统的必须用>来闭口。

5.2 id和class

class用.表示,id用#表示

// 传统写法

This Is Page Title

嘿嘿嘿

哈哈哈

// pug写法

html

head

body

h1#pageTitle This Is Page Title

p.top-p

嘿嘿嘿

.bottom-p

哈哈哈

另外,

哼哼
哈哈

// pug写法

.div-id

.display-div

5.3 属性写在圆括号里

传统html写法

提交

pug写法

.container

input(type="number" v-model="mName" class="input_name" placeholder="请输入用户名字")

button(@click="clickSubmit()" class="btn_submit") 提交

img(src="/images/pulpit.jpg" class="dateIcon" width="304" height="228" alt="Pulpit rock")

最后总结:

1.传统控件不需要. 例如input,button,img,textrea,p,span等等,直接写代表控件的名字,在圆括号里面写属性

2.div肯定是.class名字开头,但是传统控件也可以手动加class名字和id名字,方便其它地方使用

实际demo:

1.效果图:

image.png

html部分代码

.page

.row(@click="showDateTimePicker()")

span(class="title") 日期

.right

img(src="../../../assets/turnleft.png" class="dateIcon")

span(class="date") {{currentDate}}

.line

.row(style="padding-top:8px")

span(class="title") 班次

.right

.button(v-for="item,index in scheduleList" :key="index" :style="index==currentShift? buttonChooiceStyle() : buttonUnChooiceStyle()" @click="clickShift(index)") {{item.name}}

.line

.row.active

span(class="title") 停机总时长 (min)

.right

input(type="number" v-model="bean.total_time" class="input" placeholder="填写停机总时长")

.line

.row.active

span(class="title") 设备 (电气) (min)

.right

input(type="number" v-model="bean.elec_device" class="input" placeholder="填写设备(电气)")

.line

.row.active

span(class="title") 设备 (机械) (min)

.right

input(type="number" v-model="bean.mach_device" class="input" placeholder="填写设备(机械)")

.line

p 独自一行

.showSpan

span 也是一行

.save

.button(@click="addData()") 保存

样式代码,是用stylus实现的,你们也可以用传统的方式实现,但是pug搭配stylus非常方便,两者都不用写一些多余的代码。

row()//通用方法,可以定义多个在下面调用

display flex

flex-direction row

lineStyle()//通用方法2 如果是拷贝这些代码注意第一个方法以下的代码空格可能会乱,导致样式不对,注意对比

height 1px

background-color #EEEEEE

position absolute

width 100%

bottom 0px

left 10px

.page

width 100%

height 100%

overflow-x hidden

padding-bottom 62px

.row

position relative

row()

align-items center

padding 12px 10px

.title

color #333333

font-size 14px

.right

flex 1

display flex

flex-direction row-reverse

flex-wrap wrap

.line

lineStyle()

&.active

padding 0 10px

.date

color #666666

font-size 16px

.dateIcon

width 5px

height 10px

margin-top 4px

margin-left 6px

p

background firebrick

.showSpan

width 100%

span

background green

.button

border 1px solid #1E9AFF

color #1E9AFF

padding-left 15px

padding-right 15px

height 24px

background-color #fff

display flex

justify-content center

align-items center

font-size 14px

border-radius 4px

margin-left 10px

margin-top 5px

.input

font-size 14px

text-align right

height 45px

.save

width 100%

bgf()

position fixed

bottom 0

wh 100% 52px

font-size 14px

display flex

justify-content flex-end

border-top 1px solid #EEEEEE

.button

display flex

justify-content center

align-items center

height 28px

width 80px

margin 12px 28px

background-color #1E9AFF

color #fff

border null

border-radius 16px

对于stylus的使用特点

class的名字前面用.开头,在下一行缩进两格开始写样式,这个class的子布局的名字声明和他的样式的缩进保持一致,子布局样式实现又在下一行并且缩进两个单元格进行,说的很抽象,看上面代码就明白了。

可以定义通用方法,除了定义在当前的style里面(demo里面有),也可以定义一个全局的,这个就不细说了。

&符号是代表当前这一层的上面一层的名字,切割要用.来切割,好处是代码清晰

例如上面pug实现的html写的是

.main_header 头部布局

.main_header.left 左边布局

.main_header.right 右边布局

.main_header

background white

&.left

&.right

& 就是 .main_header 所以&.left 就是.main_header.left

样式动态改变用:class辅助实现:

button(class="button_style" :class="{special_style: isSpecialStyle}" @click="changeStyle()") 点击改变样式

export default {

data() {

return {

isSpecialStyle:false

}

},

method:{

changeStyle() {

// 通过控制这个变量确定是否使用special_style

this.isSpecialStyle = !this.isSpecialStyle

}

}

}

.button_style

width 90px

height 36px

padding-left 2px

padding-right 2px

border-radius 26px

font-size 12px

color rgba(255,255,255,1)

line-height:17px;

background #FFFFFF

border:1px

&.special_style

background #4472C5

border:1px solid #4472C5

***5.3 ***

CSS语法补充

padding是上右下左的顺序,有四种写法:

padding:10px; 意思是上下左右值全是10px

padding:5px 10px; 意思是上下为5px,左右为10px;

padding:1px 2px 3px 4px; 这个写法意思是:上为1px,右为2px,下为3px,左为4px

padding:5px 10px 7px; 这种写法意思是:上为5px,左右为10px,下为7px

注意:android里面都是固定的写法左右上下,只有两种写法:

padding:10px;意思是左上右下值全是10px

padding:1px 2px 3px 4px; 这个写法意思是:左为1px,上为2px,右为3px,下为4px

js常用方法补充:

// 深度复制对象方法

copy(obj){

let copyObj = {}; //最初的时候给它一个初始值=它自己或者是一个json

for(let name in obj){

if(typeof obj[name] === "object"){ //先判断一下obj[name]是不是一个对象

copyObj[name]= (obj[name].constructor===Array)?[]:{}; //我们让要复制的对象的name项=数组或者是json

this.copy(obj[name],copyObj[name]); //然后来无限调用函数自己 递归思想

}else{

copyObj[name]=obj[name]; //如果不是对象,直接等于即可,不会发生引用。

}

}

return copyObj; //然后在把复制好的对象给return出去

},

// 浅复制,这个赋值的是地址,会跟着变。

Var newObj = Oldobj

html引入stylus,Web使用Pug与Stylus相关推荐

  1. 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境

     一.开发环境配置 开始之前,假设你已经安装了最新版本的 node 和 npm. 全局安装 vue-cli 和 webpack : npm install vue-cli webpack -g 创建工 ...

  2. 【二次元stylus解放css】用stylus画可爱的小丸子

    用stylus画可爱的小丸子 之前看了一些关于二次元用css来画卡通图画的文章,都写得非常棒,但是对于我这样一个有密集恐惧症的小白来说相当的头疼,密密麻麻的括弧和标点让人眼花缭乱,最近学习了一些关于s ...

  3. iconfont怎么引入html,Web页面中引用iconfont图标

    阿里妈妈出品的 iconfont 是一个矢量图标管理.交流平台,支持矢量图.位图等格式下载,并提供便捷的前端项目植入引用方法,是当前Web开发中主流的icon解决方案. 想要在前端页面中引入图标,一个 ...

  4. pythonturtle画小丸子_【二次元stylus解放css】用stylus画可爱的小丸子

    用stylus画可爱的小丸子 之前看了一些关于二次元用css来画卡通图画的文章,都写得非常棒,但是对于我这样一个有密集恐惧症的小白来说相当的头疼,密密麻麻的括弧和标点让人眼花缭乱,最近学习了一些关于s ...

  5. 引入字体—web网页里面嵌入想要的字体文件

    最近遇到个问题,页面使用的字体要用PingFangSC字体,引入方法如下: 简单介绍下PingFangSC字体: (1)苹方-简 常规体        font-family: PingFangSC- ...

  6. Pug+Stylus+Bootstrap入门

    2019独角兽企业重金招聘Python工程师标准>>> 本文说明 博主最近在学习Express.js,里面涉及到Pug,Stylus和Bootstrap的使用.为了使文章主题专一,故 ...

  7. CSS预处理器——Sass、LESS和Stylus区别及联系

    一.什么是CSS预处器 CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作.通俗的说 ...

  8. CSS3 之 less、sass、stylus区别

    CSS(Cascading Style Sheet)被译为级联样式表,做为一名前端从业人员来说,这个专业名词并不陌生,在行业中通常称之为"风格样式表(Style Sheet)",它 ...

  9. Day_14 less,scss,stylus

    less,scss,stylus 的特点 npm安装方式: scss: npm i -d sass-loader node-sass less: npm i -d less-loader less s ...

最新文章

  1. cli vue 卸载,vue Cli 环境删除与重装教程 - 版本文档
  2. linux网络报文接收发送浅析_Docker容器网络-基础篇
  3. 洛谷——P2118 比例简化
  4. bat常用命令操作符列表
  5. matlab fftshift_matlab下实现FFT信号分析
  6. 【栈】【20. 有效的括号】【简单】
  7. Windows 搭建 C/C++ 开发环境之Eclipse
  8. oracle asm 删除diskgroup,ASM磁盘组删除DISK操作
  9. JS模块化规范对比以及在Node.js的实现
  10. 计算机毕业设计中民宿平台信息管理系统设计
  11. Asp.net 调用sqlserver存储过程参数传中文乱码!
  12. 理解最小生成树与权值最小边无关
  13. NDK-r17c编译FFmpeg4.3(支持硬编解码与neon)(七)
  14. Unity 移动 和 旋转 [小结]
  15. 关于2020年全国大学生数学建模竞赛——我的感想
  16. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理
  17. java web如何根据用户使用的浏览器来提示用户更新或更换浏览器
  18. 小学计算机课教师教学笔记,小学信息技术课老师教育教学随笔
  19. JavaWeb jQuery
  20. 大文件数据恢复-轻松恢复大于4GB的文件

热门文章

  1. 【pandas】notnull函数
  2. jquery mobile项目(一款“运动”移动web)
  3. Quartus Win10系统USB-Blaster驱动识别解决方法
  4. 黑苹果的心路历程(matebook14 2020版)
  5. 认知都因为从小的生活环境和成长经历的局限而被局限
  6. 袁沁:《第二幸福的人》这一刻,我用眼泪思念你!
  7. mysql 分批处理数据库_mysql 如何分批 读取数据
  8. c 语言掷骰子游戏,C 语言编程学习: 制作掷骰子小游戏
  9. 高德地图集成到android7.0上遇到的问题
  10. two girls and two boys' loving letter