当前位置: 首页 > news >正文

商城做网站平面广告设计经典案例

商城做网站,平面广告设计经典案例,wordpress文章页的三大标签,久久结婚网es6字符串模板 我们经常搞前端开发工作的都会用到。它可以保留字符串换行格式,还能接受变量。这个给前端的字符串拼接带来了非常大的方便。但是还有一种用法可能是我们平时还是没有怎么用到的。 styled-components 在项目中熟悉使用react的童鞋可能会用过styled-…

es6字符串模板

我们经常搞前端开发工作的都会用到。它可以保留字符串换行格式,还能接受变量。这个给前端的字符串拼接带来了非常大的方便。但是还有一种用法可能是我们平时还是没有怎么用到的。

styled-components

在项目中熟悉使用react的童鞋可能会用过styled-components,它的写法如下:

const Title = styled.h1`font-size: 1.5em;text-align: center;color: palevioletred;
`;

效果

最终就是生成一个带有上面样式属性的h1标签。

es6基础

这里看到它用到的就是es6的字符串模板。一开始我以为是预编译工具的语法。后面重温js基础时候看到了这个:

`string text``string text line 1string text line 2``string text ${expression} string text`tagFunction`string text ${expression} string text`

developer.mozilla.org

代码来源:模板字符串 - JavaScript | MDN

字符串模板前面是可以接受函数名字的,而这个函数的参数 arguments的内容是个数组,数组的第一个值是所有普通字符串的数组,剩余的元素是模板里面变量值

例如上面的代码tagFunction`string text ${expression} string text`

假设expression遍历的值是100,tagFunction的arguments的值就是

[["string text","string text"],100,
...其他变量值 //这里只有一个变量,所以不存在其他变量值]

 所以,我们可以理解是执行了tagFunction函数并给该函数传递了解析字符串`string text ${expression} string text`对象

新的书写风格

既然是执行函数,那函数是可以返回值的,那我们可以在这个函数里面return个函数,这样我们就有机会把代码写成这样


alink.styles`color:${color};font-size:16px;background-color:${bgColor};
`
.props`href:${url};tabIndex:1;`
.content`跳转到:${url}`
  1. styles设置样式属性
  2. props设置标签属性
  3. content设置标签内容 

HTMLElement对象拓展

那我们给html标签对象进行拓展方法如下:

 HTMLElement.prototype.styles = function () {return this
}
HTMLElement.prototype.props = function () {return this
}
HTMLElement.prototype.content = function () {return this
}

还需要对 arguments对象进行解析,得到key,value

解析arguments

const getAttAndValueString = (args, isContent) => {let startIndex = 0const attr = args[0].map((item) => {return item.replace('\n', '').replace(/\s/g, '').trim()}).filter(item => item)const value = args.slice(1).filter(item => item)let resultString = ''attr.forEach((element, index) => {if (element.endsWith(':') || isContent) {resultString += `${element}${value[startIndex]}`startIndex++} else {resultString += `${element}`}})return resultString
}

最终代码

  const getAttAndValueString = (args, isContent) => {let startIndex = 0const attr = args[0].map((item) => {return item.replace('\n', '').replace(/\s/g, '').trim()}).filter(item => item)const value = args.slice(1).filter(item => item)let resultString = ''attr.forEach((element, index) => {if (element.endsWith(':') || isContent) {resultString += `${element}${value[startIndex]}`startIndex++} else {resultString += `${element}`}})return resultString}HTMLElement.prototype.styles = function () {let resultString = getAttAndValueString(Array.from(arguments))console.log("resultString", resultString)const styleAttr = this.getAttribute("style");if (styleAttr) {resultString = `${styleAttr.endsWith(";") ? styleAttr : styleAttr + ";"} ${resultString}`}this.setAttribute("style", resultString);return this}HTMLElement.prototype.props = function () {// let resultString = getAttAndValueString(Array.from(arguments))// let obj = resultString.split(";").filter(item => item.length > 0)// obj.forEach(item => {//     const [prop, ...value] = item.split(":");//     this.setAttribute(prop, value.join(":"))// })return this}HTMLElement.prototype.content = function () {// this.innerText = getAttAndValueString(Array.from(arguments), true)return this}var alink = document.querySelector('#alink')var color = 'red'var bgColor = 'blue'var url = 'http://baidu.com'alink.styles`color:${color};font-size:16px;background-color:${bgColor};`.props`href:${url};tabIndex:1;`.content`跳转到:${url}`

在线效果

https://jsbin.com/kawumewoto/4/edit?html,js,output

http://www.yayakq.cn/news/97661/

相关文章:

  • jsp网站建设项目实战苏州做网站的公司有哪些
  • 手机网站设计建设网站硬件建设
  • 做视频播放网站无锡网站推广公司
  • 驰业传媒网站建设网站服务建设
  • 企业用什么做网站网页设计找什么工作
  • 建设快三网站淮南app
  • 做五金生意什么网站做比较好贵阳做网站的
  • 上海做网站的公司哪个好多网站建设
  • 紫搜科技建站网站添加支付功能
  • 做网站 网站违法吗建设工程合同属于什么合同
  • 设计网站大全图片做货代网站
  • 创网站 设计方案浅析社区网站的建设
  • 360免费建站网页链接代理ip免费
  • 湛江网站设计公司怎么制作干花
  • 淘宝联盟的网站怎么做做文献综述的文章用什么网站
  • 广广东网站建设上海网站定制设计
  • 学做网站有没有前途怎样建立一个网站步骤
  • 网站建设职业情况建e室内设计网址
  • 汕头企业建站系统第三方小程序开发平台有哪些
  • 天通苑网站建设免费网站建站手机
  • 怎么自己写代码做网站外贸网站 英文
  • 广东智能网站建设哪家有wordpress 后台菜单修改
  • 盘锦威旺做网站建设建设银行官方网站电子银行登录
  • 做网站编辑需要看什么书织梦做的网站在百度搜索页劫取
  • 高端it网站建设软件开发做网站
  • 网站模板下载后如何使用strange wordpress主题
  • 小型企业网站建设报告模拟组建过程wordpress是否免费
  • asp.net网站开发介绍电商培训机构排名前十
  • 汕头市广州新业建设有限公司网站寻找做网站的合作伙伴北京
  • 网站由谁备案wordpress 内容采集