Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中文字幕一区二区三区在线播放 ,亚洲国产成人精品久久,国产韩国在线

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML基礎(chǔ)知識(shí)之DIV

          、HTML 塊元素

          • 大多數(shù) HTML 元素被定義為塊級(jí)元素或內(nèi)聯(lián)元素;
          • 元素在瀏覽器顯示時(shí),通常會(huì)以新行來開始和結(jié)束;
          • 如:<h1>,<p>,<ul>,<table>,<div>等標(biāo)簽;

          二、HTML 內(nèi)聯(lián)元素

          • 內(nèi)聯(lián)元素在顯示時(shí)通常不會(huì)以新行開始;
          • 如:<b>, <td>, <a>, <img>,<span>等標(biāo)簽;

          三、HTML <div> 元素

          • HTML 中的<div> 元素是塊級(jí)元素,它是可用于組合其他 HTML 元素的容器;
          • <div> 標(biāo)簽定義 HTML 文檔中的一個(gè)分隔區(qū)塊或者一個(gè)區(qū)域部分;
          • <div> 元素經(jīng)常與 CSS 一起使用,用來布局網(wǎng)頁;

          四、div的使用

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>無標(biāo)題文檔</title>
          </head>
          <style>
           .all{
           width:500px;
           height:500px;
           margin:0 auto;
           background-color:#000;
           }
           .one{
           height:100px;
           background-color:#89E1BF;
           }
           .two{
           height:100px;
           background-color:#DEE099;
           }
           .three{
           height:100px;
           background-color:#D7A1CE;
           }
           
          </style>
          <body>
           <!--父div,all是黑色-->
           <div class="all">
           <!--子div,one是綠色-->
           <div class="one">
           </div>
           <!--子divtwo,是黃色-->
           <div class="two">
           </div>
           <!--子div,three是紫色-->
           <div class="three">
           </div>
           </div>
          </body>
          </html>
          

          演示效果如圖所示:

          1. . 嵌套操作----------

          2. 子操作: >

          3. div>ul>li

          4. <div>

          5. <ul>

          6. <li></li>

          7. </ul>

          8. </div>

          9. 并列:+

          10. div+ul>li

          11. <div></div>

          12. <ul>

          13. <li></li>

          14. </ul>

          15. 上級(jí):^

          16. ul>li^div

          17. <ul>

          18. <li></li>

          19. </ul>

          20. <div></div>

          21. ul>li>a^^div 上級(jí)多層

          22. <ul>

          23. <li><a href=""></a></li>

          24. </ul>

          25. <div></div>

          26. 重復(fù):*

          27. ul>li*3

          28. <ul>

          29. <li></li>

          30. <li></li>

          31. <li></li>

          32. </ul>

          33. 分組:()

          34. div>(p>span)*2

          35. <div>

          36. <p><span></span></p>

          37. <p><span></span></p>

          38. </div>

          39. 2. 屬性操作----------

          40. id和類

          41. div#header+div.main+div#footer

          42. <div id="header"></div>

          43. <div class="main"></div>

          44. <div id="footer"></div>

          45. 屬性值

          46. a[title=test target=_self]

          47. <a title="test" target="_self" href=""></a>

          48. 數(shù)列值:$

          49. p.item$*3

          50. <p class="item1"></p>

          51. <p class="item2"></p>

          52. <p class="item3"></p>

          53. p.item$$*3

          54. <p class="item01"></p>

          55. <p class="item02"></p>

          56. <p class="item03"></p>

          57. 數(shù)列操作符:@

          58. p.item$@-*3 @- = -1

          59. <p class="item3"></p>

          60. <p class="item2"></p>

          61. <p class="item1"></p>

          62. p.item$@3*3 @3 = 從3開始3次

          63. <p class="item3"></p>

          64. <p class="item4"></p>

          65. <p class="item5"></p>

          66. p.item$@-3*3 @-3 = 3次后到3結(jié)束

          67. <p class="item5"></p>

          68. <p class="item4"></p>

          69. <p class="item3"></p>

          70. 3. 字符操作----------

          71. 字符操作:{}

          72. a{click}

          73. <a href="">click</a>

          74. a>{click}+span{me}

          75. <a href="">click<span>me</span></a>

          76. 4. 缺省元素----------

          77. .header+.footer --------------- div.header+div.footer

          78. ul>.item*3 -------------- ul>li.item*3

          79. table>.row*4>.cell*3 -------------- table>tr.row*4>td.cell*3

          把手教你寫一個(gè)Vue組件發(fā)布到npm且可外鏈引入使用

          前言

          我們?yōu)槭裁匆獙憘€(gè)組件上傳到npm鏡像上呢,我們肯定遇到過這樣一個(gè)場(chǎng)景,項(xiàng)目中有很多地方與某個(gè)功能相似,你想到的肯定是把該功能封裝成Component組件,后續(xù)方便我們調(diào)用。但是過了一段時(shí)間,你的Leader讓你去開發(fā)另一個(gè)項(xiàng)目,結(jié)果你在哪個(gè)項(xiàng)目中又看見了類似的功能,你這時(shí)會(huì)怎么做? 你也可以使用Ctrl + c + v大法,拿過來上一個(gè)項(xiàng)目封裝好的代碼,但是如果需求有些變動(dòng),你得維護(hù)兩套項(xiàng)目的代碼,甚至以后更多的項(xiàng)目....,這時(shí)你就可以封裝一個(gè)功能上傳到你們公司內(nèi)網(wǎng)的npm上(或者自己的賬號(hào)上),這樣每次遇到類似的功能直接npm install 安裝import導(dǎo)入進(jìn)來使用就可以,需求有變動(dòng)時(shí)完全可以改動(dòng)一處代碼。

          配置環(huán)境

          筆者這里使用的是Webpack配置(有點(diǎn)菜,不要介意),也可以安裝一個(gè)Vue-cli簡(jiǎn)單版的,它那里面有暴露Webpack的配置(也得修改自行配置),我們來配置一下打包組件環(huán)境,一般開發(fā)組件庫都是使用的umd格式,這種格式支持Es ModuleCommonJsAMD三種引入方式使用,主要就是Webpack里的librarylibraryTarget,如果不明白的看這里詳解webpack的out.libraryTarget屬性

          我這里的Webpack版本為4, 最好跟著本章里的插件版本號(hào)進(jìn)行安裝,避免出現(xiàn)版本兼容問題

          項(xiàng)目結(jié)構(gòu)

          |- /node_modules
          |- /src
             |- Tag.vue
             |- main.js
          |- index.html
          |- webpack.config.js
          |- package.json
          復(fù)制代碼

          初始化Package.json

          npm init -y
          復(fù)制代碼

          安裝Webpack && Loader && Plugin

          cnpm i webpack webpack-cli -D
          cnpm i css-loader style-loader -D
          cnpm i file-loader -D
          cnpm i vue-loader@15.7.0 vue vue-template-compiler -D
          cnpm i html-webpack-plugin@3.2.0 -D
          復(fù)制代碼
          • css-loader style-loader 配置.css文件及樣式使用
          • file-loader 配置特殊字體和圖片使用
          • vue-loader 處理.vue文件后綴
          • vue 使用Vue語法
          • vue-template-compiler 處理.vue文件里的template模板語法

          webpack.config.js

          const VueLoaderPlugin = require('vue-loader/lib/plugin')
          const HtmlWebpackPlugin = require("html-webpack-plugin")
          module.exports = {
              mode: "development",
              entry: "./src/main.js",
              output: {
                  filename: "index.js"
              },
              module: {
                  rules: [
                      {
                          test: /\.css$/,
                          use: ["style-loader", "css-loader"]  
                      },
                      {
                          test: /\.(ttf|eot|woff|svg|woff2)/,
                          use: "file-loader"
                      },
                      {
                          test: /\.vue$/,
                          use: "vue-loader"
                      }
                  ]
              },
              plugins: [
                  new VueLoaderPlugin(),
                  new HtmlWebpackPlugin({
                      template: "./index.html"
                  })
              ]
          }
          復(fù)制代碼

          index.html

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
          </head>
          <body>
              <div id="app"></div>
          </html>
          復(fù)制代碼

          以上我們基本環(huán)境就搭建完啦,可以在終端使用npx webpack運(yùn)行看看哦。

          封裝組件

          我這里只做一個(gè)示例哈,代碼就不寫那么復(fù)雜,大家知道怎么打包使用就行,具體封裝成啥樣看你們公司需求啦~。筆者這里使用Element Ui組件來做一個(gè)示例,相信大部分小伙伴公司也在使用Element Ui。假如我們項(xiàng)目中有以下類似的功能就可以單獨(dú)封裝起來。

          main.js

          import Vue from 'vue'
          import { Tag } from 'element-ui';
          import 'element-ui/lib/theme-chalk/tag.css';
          import customTag from "./Tag.vue"
          Vue.component(Tag.name, Tag)
          export default customTag
          復(fù)制代碼

          Tag.vue

          <template>
            <div class="Tag">
              {{ msg }}
              <el-tag type="success">標(biāo)簽二</el-tag>
            </div>
          </template>
          
          <script>
          export default {
           name: 'Tag',
            data() {
              return {
                  msg: "hello 蛙人",
              }
            },
            created() {
            },
            components: {},
            watch: {},
            methods: {
            }
          }
          </script>
          <style scoped>
          
          </style>
          
          復(fù)制代碼

          Webpack.config.js

          webpack.config.js里的output修改為如下

          output: {
              filename: "index.js",
              library: "Modal",
              libraryTarget: "umd"
          }
          復(fù)制代碼

          配置完之后就可以使用npx webpack打包,可以看到有一個(gè)dist目錄,該目錄下存在一個(gè)index.js, 這個(gè)文件就是我們封裝的Tag.vue文件, 你可以將它引入到你的項(xiàng)目中,進(jìn)行調(diào)用,該文件支持Es ModuleCommonJsAMD三種方式引入。

          import Vue from 'vue'
          import { Tag } from 'element-ui';
          import 'element-ui/lib/theme-chalk/tag.css';
          Vue.component(Tag.name, Tag)
          import CustomTag from "./index" // 打包完的,直接引入進(jìn)來
          new Vue({
              el: "#app",
              render: h => h(CustomTag)
          })
          復(fù)制代碼

          Npm發(fā)布

          如果沒有npm賬號(hào)呢,先去官網(wǎng)注冊(cè)一個(gè)npm賬號(hào)這里

          新建一個(gè)發(fā)布包項(xiàng)目文件夾

          在終端執(zhí)行npm init -y ,進(jìn)行初始package.json文件,主要信息就是name和main字段,前者是這個(gè)包的名稱(也就是npm instal xxx),后者則是我們打包好的文件Tag文件,默認(rèn)main就去找這個(gè)入口文件。

          注意:包名稱不能包含大寫,包名稱不能包含大寫,包名稱不能包含大寫,重要的事情說三遍

          {
            "name": "custom-tag-waren",
            "version": "1.0.0",
            "description": "這是xxxx",
            "main": "index.js",
            "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
            },
            "keywords": [],
            "author": "WaRen",
            "license": "ISC"
          }
          復(fù)制代碼

          如果淘寶鏡像之前被更改,先改回來執(zhí)行以下命令

          npm config set registry http://registry.npmjs.org
          復(fù)制代碼

          注冊(cè)完之后,執(zhí)行npm login, 依次填寫你的用戶名密碼郵箱

          執(zhí)行npm publish發(fā)布,然后等待進(jìn)度條完成即可。

          整理一些常見的發(fā)布錯(cuò)誤

          這是因?yàn)殓R像設(shè)置成淘寶鏡像了,設(shè)置回來即可

          no_perms Private mode enable, only admin can publish this module
          復(fù)制代碼

          一般是沒有登錄,重新登錄一下 npm login 即可

          npm publish failed put 500 unexpected status code 401
          復(fù)制代碼

          包名被占用,改個(gè)包名即可,最好在官網(wǎng)查一下是否有包名被占用,之后再重命名

          npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?
          復(fù)制代碼

          郵箱未驗(yàn)證,去官網(wǎng)驗(yàn)證一下郵箱

          you must verify your email before publishing a new package
          復(fù)制代碼

          npm安裝使用

          cnpm i custom-tag-waren -D
          復(fù)制代碼

          main.js

          import Vue from 'vue'
          import { Tag } from 'element-ui';
          import 'element-ui/lib/theme-chalk/tag.css';
          import customTagWaren from "custom-tag-waren"  // 下載完引入進(jìn)來
          Vue.component(Tag.name, Tag)
          new Vue({
              el: "#app",
              render: h => h(customTagWaren)
          })
          復(fù)制代碼

          到此為止就完成了一個(gè)組件的打包上傳下載,這樣我們?cè)诿總€(gè)項(xiàng)目需要的時(shí)候直接npm install安裝就行,當(dāng)需求改動(dòng)的時(shí)候只改一個(gè)文件然后再次發(fā)布就行。是不是很方便啦。

          外鏈引入

          我們也不上傳npm上,直接使用外鏈的形式使用,下面我們來看看

          import引入

          <template>
            <div class="Tag">
              <TagEl/>
            </div>
          </template>
          
          <script>
          import TagEl from "./index"
          export default {
           name: 'Tag',
            data() {
              return {
                 
              }
            },
            components: {
                TagEl
            },
          }
          </script>
          <style scoped>
          
          </style>
          復(fù)制代碼

          上面example中,我們看到直接引入了index.js文件并進(jìn)行注冊(cè)組件,直接就可以使用啦。

          script引入

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
          </head>
          <body>
              <div id="app">
                  <Tag/>
              </div>
              <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.min.js"></script>
              <script type="text/javascript" src="./dist/index.js"></script>
          </body>
          <script>
              new Vue({
                  el: "#app",
                  components: {
                      Tag: Tag.default
                  }
              })
          </script>
          </html>
          復(fù)制代碼

          上面example中,直接使用script標(biāo)簽引入進(jìn)來,也是注冊(cè)完使用就可以。那么我們?cè)趺粗浪质荰ag,這個(gè)你在封裝組件的使用,必須指定Name名稱。


          主站蜘蛛池模板: 久久精品黄AA片一区二区三区 | 亚洲AV无码一区二区三区在线观看| 国产成人午夜精品一区二区三区| 日韩精品一区二区三区在线观看| 国产一区二区精品尤物| 亚洲视频一区二区三区| 多人伦精品一区二区三区视频| 又硬又粗又大一区二区三区视频| 国产精品av一区二区三区不卡蜜 | 国产一区二区三区在线免费观看| 色一乱一伦一图一区二区精品| 东京热无码av一区二区| 亚洲一区精彩视频| 久久精品一区二区| 日韩一区二区三区精品| 国产精品视频一区二区三区经| 91大神在线精品视频一区| 国产一区二区三区在线视頻| 在线观看视频一区二区| 天堂Av无码Av一区二区三区| 无码成人一区二区| 国产精品伦一区二区三级视频 | 亚洲一区日韩高清中文字幕亚洲| 日韩在线一区高清在线| 日韩人妻无码一区二区三区99| 一区二区视频在线播放| 亚洲无线码在线一区观看| 丰满爆乳无码一区二区三区| 青青青国产精品一区二区| 另类免费视频一区二区在线观看| 国产在线一区二区三区在线| 精品少妇一区二区三区在线 | 人妻无码视频一区二区三区 | 久久福利一区二区| 深夜福利一区二区| 波多野结衣一区二区三区高清在线| 欲色影视天天一区二区三区色香欲| 日韩精品无码人妻一区二区三区| 精品久久久久一区二区三区| 亚洲一区二区视频在线观看 | 精品国产一区在线观看|