精华内容
下载资源
问答
  • <style type="text/css"> .style1 { width: 100%; } .style2 { width: 170px; } .style3 { width: 100px; } </style> <table class="style1">   角色管理 &...
  • 详细信息:</b> 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件创建一个 <customErrors> 标记。然后应将此 <customErrors> ...
  • fmtlog: a performant fmtlib-style logging library with latency in nanoseconds Folly: Facebook open-source library Grand Mountain Adventure: A beautiful open-world ski & snowboarding game ...
  • SOAPBind style区别

    2012-04-18 03:57:41
    rpc和document到底是什么意思?他们如何同"encoded/literal"相关联?二者的冲突来自哪里? binding的style和use 通常情况下,web服务是由一个wadl文件来描述的的。在这个文件,抽象的描述所支持的...
    翻译自 The Difference Between RPC and Document Style WSDL

    rpc和document到底是什么意思?他们如何同"encoded/literal"相关联?二者的冲突来自哪里?

    binding的style和use
    通常情况下,web服务是由一个wadl文件来描述的的。在这个文件中,抽象的描述所支持的web服务操作和消息,然后关联到一个具体的网

    络歇息和消息格式。典型的wsdl文件由这个几个元素组成:tyoes,message.porttype用来描述抽象的定义;biding和service指定具体的实

    现。所有的这些元素包装在definitions元素中。

    在binding元素中,rpc和document是最值得我们关注的元素。wsdl 的 binding描述了如何将service关联到消息协议;这些消息协议是

    http,mime,soap中的任意一种。不过,实际中,soap是最常用的协议;rpc和document的区别也是在soap的下的区别(it is SOAP that

    the RPC/document distinction refers to)。通常http(s)是传输soap消息的协议。

    <wsdl:binding>元素包含一对参数,style(rpc|document)和use(encoded|literal),他俩会影响到soap消息的格式.他们的使用方式如下


    <wsdl:binding name="Config1Binding" type="prt0:CreditLimitLocalWebServiceVi_Document">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="creditLimitCheck">
    <soap:operation soapAction="" />
    <wsdl:input>
    <soap:body use="literal" parts="parameters" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>

    style属性:
    wsdl1.1要求binding的style要么是rpc要么是doucment。这个选择与如何组织soap的负荷相关。下面是分别他们如何影响<soap:body>内

    容的细节。
    document:<soap:body>的内容由定义在<wsdl:type>中的xml模式指定。他不需要遵循特定的soap规范。简言之,soap消息是通过

    <soap:body>中的document发送出去,而没有额外的要遵循的格式规则。document style是一种默认的选择。
    rpc: <soap:body>元素的结构需要遵循特定的规则(soap1.1规范第7部分有细节)。根据这些规则,<soap:body>可以包含唯一一个元素

    ,这个元素在operation后被命名,所有的参数都必须写成这个元素的子元素。

    因为可以自由的选择哪种消息格式,遵循document格式的soap消息看上去很像rpc格式。

    现在,决定性的问题是:选择其中任意一个选项后的结果是什么样?为何要选择rpc或者document?很多情况下,选择他们后,soap消息

    的格式看起来很相像,那么为什么还要提供这种选择呢?原因要从soap标准化的历程中寻找。


    use属性
    这个属性指定了soap消息的编码规则。他同样在<wsdl:binding>元素中完成。他的值为encoded或者literal.
    他引用了一系列规则,soap客户端和soap服务端都遵循这些规则以解释<body>元素中的内容。
    use="literal" 意味着type定义遵循xml模式定义
    use="encoded" 参考xml中已有的应用数据,通常指的是soap1.1规范中的soap编码规则。如果文档中没有自定义数据,就可以选择

    encoded。
    展开全文
  • 什么是CSS Modulse? 在做vue等Node项目时,经常会有一项:是否启用CSS Modules,如下图所示: 那么,什么是CSS Modules呢?使用它有什么意义呢? CSS Modules,直接强译,就是css模块的意思。 当web研发越来越多时...

    什么是CSS Modulse?

    在做vue等Node项目时,经常会有一项:是否启用CSS Modules,如下图所示:

    那么,什么是CSS Modules呢?使用它有什么意义呢?

    CSS Modules,直接强译,就是css模块的意思。

    当web研发越来越多时,为了应对CSS的凌乱,于是人们想到了用这种方法。
    比如有人在home.vue中,直接在文件中行内写了一行代码

    	<style>
    	.btn{font-size:1rem;}
    	</style>
    

    接下来,这位作者,又在about.vue中,同样在文件中行内写了这么一个相同的css定义:

    	<style>
    	.btn{font-size:0.4rem;}
    	</style>
    

    那么,这两个代码最后编译会不会冲突?有没有办法规避?
    需要知道,vue这样的框架在诞生,背后很大目的就是为了解决中后台开发者不熟悉css甚至是切图这些而生,CSS Modules则能规避这个问题,他会将两个.btn类分别生成.home_btn.about_btn,从而规避。
    当然,背后的逻辑会比这个复杂得多,我们慢慢展开讲解。

    为什么引入CSS Modeules

    或者可以这么说,CSS Modules为我们解决了什么痛点。针对以往我写网页样式的经验,具体来说可以归纳为以下几点:

    全局样式冲突

    过程是这样的:你现在有两个模块,分别为A、B,你可能会单独针对这两个模块编写自己的样式,例如a.css、b.css,看一下代码

    // A.js
    import './a.css'
    const html = '<h1 class="text">module A</h1>'
    
    // B.js
    import './b.css'
    const html = '<h1 class="text">module B</h1>'
    

    下面是样式:

    /* a.css */
    .text {
    	color: red;
    }
    
    /* b.css */
    .text {
    	color: blue;
    }
    

    导入到入口APP中

    // App.js
    import A from './A.js'
    import B from './B.js'
    
    element.innerTHML = 'xxx'
    

    由于样式是统一加载到入口中,因此实际上的样式合在一起(这里暂定为mix.css)显示顺序为:

    /* mix.css */
    
    /* a.css */
    .text {
    	color: red;
    }
    
    /* b.css */
    .text {
    	color: blue;
    }
    

    根据CSS的Layout规则,因此后面的样式会覆盖掉前面的样式声明,最终有效的就是text的颜色为blue的那条规则,这就是全局样式覆盖,同理,这在js中也同样存在,因此就引入了模块化,在js中可以用立即执行函数表达式来隔离出不同的模块

    var moduleA = (function(document, undefined){
    	// your module code
    })(document)
    
    var moduleB = (function(document, undefined){
    	// your module code
    })(document)
    

    而在css中要想引入模块化,那么就只能通过namespace来实现,而这个又会带来新的问题,这个下面会讲到。

    嵌套层次过深的选择器

    为了解决全局样式的冲突问题,就不得不引入一些特地命名namespac来区分scope,但是往往有些namespace命名得不够清晰,就会造成要想下一个样式不会覆盖,就要再加一个新的namespace来进行区分,最终可能一个元素最终的显示样式类似如以下:

    .widget .table .row .cell .content .header .title {
      padding: 10px 20px;
      font-weight: bold;
      font-size: 2rem;
    }
    

    在上一个元素的显示上使用了7个选择器,总结起来会有以下问题:

    • 根据CSS选择器的解析规则可以知道,层级越深,比较的次数也就越多。当然在更多的情况下,可能嵌套的层次还会更深,另外,这里单单用了类选择器,而采用类选择器的时候,可能对整个网页的渲染影响更重。
    • 增加了不必要的字节开销
    • 语义混乱,当文档中出现过多的content、title以及item这些通用的类名时,你可能要花上老半天才知道它们到底是用在哪个元素上
    • 可扩展性不好,约束越多,扩展性越差
      【注】CSS的渲染规则可以参看这篇文章探究 CSS 解析原理 https://juejin.im/entry/5a123c55f265da432240cc90

    会带来代码的冗余

    由于CSS不能使用类似于js的模块化的功能,可能你在一个css文件中写了一个公共的样式类,而你在另外一个css也需要这样一个样式,这时候,你可能会多写一次,类似于这样的

    /* a.css */
    
    .modal {
    	position: absolute;
    	top: 0;
    	bottom: 0;
    	left: 0;
    	right: 0;
    	z-index: 1;
    	background-color: rgba(0, 0, 0, 0.7);
    }
    .text {
    	color: red;
    }
    
    /* b.css */
    .modal {
    	position: absolute;
    	top: 0;
    	bottom: 0;
    	left: 0;
    	right: 0;
    	z-index: 1;
    	background-color: rgba(0, 0, 0, 0.7);
    }
    .text {
    	color: blue;
    }
    

    那么在合并成app.css的时候,就会被编写两遍,虽然样式不会被影响,但是这样实际上也是一种字节浪费,当然,上述的这种情况完全是可以通过公用全局样式来达到目的,但是,这种代码重复通常是在不知情的情况下发生的。

    一些解决方案

    针对上述的一些问题,也有一些解决方案,具体如下:

    CSS预处理器(Sass/Less等),Sass,Less的用法这里不再赘述,如果不清楚,可以自己查阅相关资料去了解一下,其中sass的使用文档在这里可以看到http://code.z01.com/sass

    CSS预处理器最大的好处就是可以支持模块引入,用js的方式来编写CSS,解决了部分scope混乱以及代码冗余的问题,但是也不能完全避免。同时,也没有解决全局样式的冲突问题

    一个SASS的的文件是这样的:

    /* app.sass */
    
    @import './reset'
    @import './color'
    @import './font'
    

    可以实际上编译之后,终究还是一个文件,因此不可避免的会出现冲突样式

    BEM(Block Element Modifier)

    There are only two hard problems in Computer Science: cache invalidation and naming things — Phil Karlton

    BEM就是为了解决命名冲突以及更好的语义化而生的。

    BEM名词解释
    Block:逻辑和页面功能都独立的页面组件,是一个可复用单元,特点如下:

    • 可以随意嵌套组合
    • 可以放在任意页面的任何位置,不影响功能和外观
    • 可复用,界面可以有任意多个相同Block的实例
    • Element:Block的组成部分,依赖Block存在(出了Block就不能用)
    • [可选]定义Block和Element的外观及行为,就像HTML属性一样,能让同一种Block看起来不一样

    ** 命名规则 **

    Block作为最小的可复用单元,任意嵌套不会影响功能和外观,命名可以为headermenu等等

    <style>
    	.header { color: #042; }
    </style>
    
    <div class="header">...</div>
    

    Element依附Block存在,没有单独的含义,命名上语义尽量接近于Block,比如title、item之类

    <style>
    	.header { color: #042; }
    	.header__title { color: #042; }
    </style>
    
    <div class="header">
    	<h1 class="header__title">Header</h1>
    </div>
    

    Modifier是一个元素的状态显示,例如active、currentselected`

    <style>
        .header--color-black { color: #000; }
        .header__title--color-red { color: #f00; }
    </style>
    
    <div class="header header--color-black">
        <h1 class="header__title">
            <span class="header__title--color-red">Header</span>
        </h1>
    </div>
    

    【说明】

    • Block完全独立,可以嵌套,一个header是一个Block,header下的搜索框也可以是一个Block
    • 不可能出现Block__Element-father__Element-son_Modifer这种类名的写法,BEM只有三级
    • Modifier可以加在Block和Element上面
    • Modifier作为一个额外的类名加载Block和Element上面,只是为了改变状态,需要保留原本的class

    一个完整的示例

    <form class="form form--theme-xmas form--simple">
      <input class="form__input" type="text" />
      <input
        class="form__submit form__submit--disabled"
        type="submit" />
    </form>
    
    .form { }
    .form--theme-xmas { }
    .form--simple { }
    .form__input { }
    .form__submit { }
    .form__submit--disabled { }
    

    参考链接:

    BEM解决了模块复用、全局命名冲突等问题,配合预处理CSS使用时,也能得到一定程度的扩展,但是它依然有它的问题:

    • 对于嵌套过深的层次在命名上会给需要语义化体现的元素造成很大的困难
    • 对于多人协作上,需要统一命名规范,这同样也会造成额外的effort

    CSS Modules

    说了这么多,终于要到正文了

    什么是CSS Modules

    根据CSS Modules的repo上的话来说是这样的:

    CSS files in which all class names and animation names are scoped locally by default.

    所以CSS Modules并不是一个正式的声明或者是浏览器的一个实现,而是通过构建工具(webpack or Browserify)来使所有的class达到scope的一个过程。

    CSS Modules 解决了什么问题

    • 全局命名冲突,因为CSS Modules只关心组件本身,只要保证组件本身命名不冲突,就不会有这样的问题,一个组件被编译之后的类名可能是这样的:
    /* App.css */
    .text {
        color: red;
    }
    
    /* 编译之后可能是这样的 */
    .App__text___3lRY_ {
        color: red;
    }
    

    命名唯一,因此保证了全局不会冲突。

    • 模块化

    可以使用composes来引入自身模块中的样式以及另一个模块的样式:

    .serif-font {
      font-family: Georgia, serif;
    }
    
    .display {
      composes: serif-font;
      font-size: 30px;
      line-height: 35px;
    }
    

    应用到元素上可以这样使用:

    import type from "./type.css";
    
    element.innerHTML = 
      `<h1 class="${type.display}">
        This is a heading
      </h1>`;
    

    之后编译出来的模板可能是这样的:

    <h1 class="Type__display__0980340 Type__serif__404840">
      Heading title
    </h1>
    

    从另一个模块中引入,可以这样写:

    .element {
      composes: dark-red from "./colors.css";
      font-size: 30px;
      line-height: 1.2;
    }
    
    • 解决嵌套层次过深的问题

    因为CSS Modules只关注与组件本身,组件本身基本都可以使用扁平的类名来写,类似于这样的:

    .root {
      composes: box from "shared/styles/layout.css";
      border-style: dotted;
      border-color: green;
    }
    
    .text {
      composes: heading from "shared/styles/typography.css";
      font-weight: 200;
      color: green;
    }
    

    CSS Modules 怎么用

    CSS Modules不局限于你使用哪个前端库,无论是React、Vue还是Angular,只要你能使用构建工具进行编译打包就可以使用。

    下面我使用webpack为例,一步一步引入CSS Modules.

    构建最初始的应用

    .
    ├── build
    │   └── bundle.js
    ├── index.html
    ├── node_modules
    ├── package-lock.json
    ├── package.json
    ├── src
    │   ├── index.js
    │   └── styles
    └── webpack.config.js
    

    index.js作为程序入口,styles文件夹存放样式文件,配合webpack.config.js作为webpack配置文件。

    // index.js
    var html = `<div class="header">
    	<h2 class="title">CSS Modules</h2>
    </div>`
    
    document.getElementById('container').innerHTML = html;
    

    样式文件:

    /* global.css */
    * {
    	margin: 0;
    	padding: 0;
    }
    
    .container {
    	padding: 20px;
    }
    
    /* index.css */
    .header {
    	font-size: 32px;
    }
    
    .title {
    	border-bottom: 1px solid #ccc;
    	padding-bottom: 20px;
    }
    

    模板文件:

    <!-- index.html -->
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>css modules</title>
    </head>
    <body>
    	<div id="container" class="container"></div>
    	<script src="./build/bundle.js"></script>
    </body>
    </html>
    

    全局安装依赖,配置执行脚本:

    npm install webpack webpack-cli --save-dev
    

    package.json

    "scripts": {
        "build": "npx webpack && open index.html"
    }
    

    在控制台执行npm run build, 得到的结果为:

    > css-modules-demo@1.0.0 build /Users/yhhu/Documents/coding/css-modules-demo
    > npx webpack && open index.html
    
    Hash: 5810d2ecd760c08cc078
    Version: webpack 4.17.1
    Time: 78ms
    Built at: 2018-08-26 15:09:31
        Asset      Size  Chunks             Chunk Names
    bundle.js  3.97 KiB    main  [emitted]  main
    Entrypoint main = bundle.js
    [./src/index.js] 196 bytes {main} [built]
    

    加入样式以及loaders

    package.json中加入能够处理css的loader

      module: {
        rules: [
          {
            test: /\.js/,
            loader: 'babel-loader',
            include: __dirname + '/src',
            exclude: __dirname + '/src/styles'
         	},
          {
            test: /\.css$/,
            use: [
              { loader: 'style-loader' },
              {
                loader: 'css-loader',
                options: {         
                }
              }
            ]
          }
        ]
      }
    

    index.js中引入两个CSS文件

    // index.js
    import './styles/global.css'
    import './styles/index.css'
    
    const html = `<div class="header">
    	<h2 class="title">CSS Modules</h2>
    </div>`
    
    document.getElementById('container').innerHTML = html;
    

    编译之后的执行结果为:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-azkcDCGC-1581834631227)(http://www.73ic.com/UploadFiles/Anony/content/md/aIiSAIFnkl.jpg “build”)]

    在浏览器中显示为:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5puAAiOz-1581834631227)(http://www.73ic.com/UploadFiles/Anony/content/md/0uuV0vnsr2.jpg “css-loader”)]

    提取公有样式

    可以看到打包之后的build目录下只有一个bundle.js,我们现在要把样式文件提取出来

    ./build/
    └── bundle.js
    
    • 安装依赖
    npm install --save-dev mini-css-extract-plugin
    
    • 修改webpack.config.js
    var MiniCssExtractPlugin = require("mini-css-extract-plugin");
    
    modules: {
        rules: [
            // {
            //   test: /\.css$/,
            //   use: [
            //   	{ loader: "style-loader" },
            //     {
            //     	loader: "css-loader",
            //     	options: {
            
            //     	}
            //     }
            //   ]
            // },
            {
                test: /\.css$/,
                use: [
                  {
                    loader: MiniCssExtractPlugin.loader,
                    options: {
                      publicPath: './build/styles'
                    }
                  },
                  { 
                    loader: "css-loader",
                    options: {
                        
                    }
                  }
                ]
            }        
        ]
    },
    plugins: [
        new MiniCssExtractPlugin({
          filename: "[name].css",
          chunkFilename: "[id].css"
        })
    ],
    
    • 在模板中引入样式文件
    <!-- index.html -->
    
    <!DOCTYPE html>
    <head>
    	<link rel="stylesheet" href="./build/main.css">
    </head>
    <body>
    	<div id="container" class="container"></div>
    	<script src="./build/bundle.js"></script>
    </body>
    
    • 编译打包

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeOxCmws-1581834631228)(http://www.73ic.com/UploadFiles/Anony/content/md/t5oWwzeHN0.jpg “extract”)]

    可以看到有main.css生成

    开启css modules功能

    默认在css-loader中是不开启css modules功能的,要开启可以设置modules: true即可,更多可以参看官方css-loader使用方法修改webpack.config.js,如下:

    {
        test: /\.css$/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
            options: {
              publicPath: './build/styles'
            }
          },
          { 
            loader: "css-loader",
            options: {
                modules: true
            }
          }
        ]
    }        
    

    修改index.js文件中的引用方式:

    import './styles/global.css'
    import Index from './styles/index.css'
    
    const html = `<div class=${Index.header}>
    	<h2 class=${Index.title}>CSS Modules</h2>
    </div>`
    
    document.getElementById('container').innerHTML = html;
    

    可以看到,之前都是直接import一个css文件,而现在改成了导出一个对象的形式,我们可以把Index对象打印出来,看看具体是些什么东西:

    直接对应我们引用的方式,然后我们再看看生成出来的main.css中具体有哪些东西:

    * {
    	margin: 0;
    	padding: 0;
    }
    
    ._2BQ9qrIFipNbLIGEytIz5Q {
    	padding: 20px;
    }
    ._3Ukt9LHwDhphmidalfey-S {
    	font-size: 32px;
    }
    
    ._3XpLkKvmw0hNfJyl8yU3i4 {
    	border-bottom: 1px solid #ccc;
    	padding-bottom: 20px;
    }
    

    合成一个文件之后,所有的类名都经过了哈希转换,因此确保了类名的唯一性,我们再看看浏览器中inspector中的样式应用,如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zUH7vUzs-1581834631229)(http://www.73ic.com/UploadFiles/Anony/content/md/NODtweQSEm.jpg “no-transform”)]

    事实上,container样式我们是不需要转换的,因为我是把它固定写死在了容器上,那我们应该怎么做呢?

    全局作用域

    要想一个类名不需要被装换,那么可以使用:global(className)来进行包装,这样的类不会被转换,会被原样输出,下面我们修改global.css

    /* global.css */
    * {
    	margin: 0;
    	padding: 0;
    }
    
    :global(.container) {
    	padding: 20px;
    }
    

    我们再来看看main.css

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7OLKMvx-1581834631229)(http://www.73ic.com/UploadFiles/Anony/content/md/p5bbH9Mg5s.jpg “global”)]

    就可以发现.container类没有被转换

    定义哈希类名

    CSS Modules默认是以[hash:base64]来进行类名转换的,可辨识度不高,因此我们需要自定义

    开启自定义,可以使用一个配置参数localIdentName,具体配置如下:

    { 
      loader: "css-loader",
      options: {
      	modules: true,
      	localIdentName: '[path][name]__[local]--[hash:base64:5]'
      }
    }
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-72BJEy2t-1581834631230)(http://www.73ic.com/UploadFiles/Anony/content/md/o2IHMKUbfo.jpg “localIdentName”)]

    类名组合

    如果我们实现类似于Sass的继承功能,我们需要怎么做呢?CSS Modules中提供了composes关键字让我们来继承另外一个类,修改index.css如下:

    .red {
    	color: red;
    }
    
    .header {
    	font-size: 32px;
    }
    
    .title {
    	composes: red;
    	border-bottom: 1px solid #ccc;
    	padding-bottom: 20px;
    }
    

    我们增加了一个red的类名,在title中实现继承,编译之后的结果为:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0DfNRB8D-1581834631230)(http://www.73ic.com/UploadFiles/Anony/content/md/JJsiUCP7Ax.jpg “composes-inner”)]

    发现多了一个src-styles-index__red--1ihPk的类名,正是我们上面继承的那个类

    除了在自身模块中继承,我们还可以继承其他文件中的CSS规则,具体如下:

    我们再styles文件夹下新建一个color.css

    /* color.css */
    .red {
    	color: red;
    }
    
    .blue {
    	color: blue;
    }
    

    然后在index.css文件中导入

    /* index.css */
    .red {
    	color: red;
    }
    
    .header {
    	font-size: 32px;
    }
    
    .title {
    	color: green;
    	composes: blue from './color.css';
    	composes: red;
    	border-bottom: 1px solid #ccc;
    	padding-bottom: 20px;
    }
    

    最终我们会发现文字的颜色为绿色,可见自身模块声明优先级最高,如果把自身申明的color去掉,那么自身引入和从其他文件引入的相同申明又该如何显示呢?

    答案是自身引入的声明的优先级会比较高。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uF1nyqCi-1581834631231)(http://www.73ic.com/UploadFiles/Anony/content/md/Oc8zhsyGcU.jpg “override”)]

    总结

    至此,所有的CSS Modules用法就已经介绍完毕了,至于后续的还有如何应用于ReactVue以及Angular中,相信掌握了上面的内容之后就可以知道怎么写了,如何与预处理器一起使用相信问题也不大。

    参考链接

    展开全文
  • 疯狂学习java web2(css)

    2019-10-06 14:41:59
    CSS应该样式描述的意思,定义如下: 什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表 把样式添加到 HTML 4.0 为了解决内容与表现分离的问题 外部...

    CSS应该是样式描述的意思,定义如下:

    什么是 CSS?

    • CSS 指层叠样式表 (Cascading Style Sheets)
    • 样式定义如何显示 HTML 元素
    • 样式通常存储在样式表
    • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
    • 外部样式表可以极大提高工作效率
    • 外部样式表通常存储在 CSS 文件
    • 多个样式定义可层叠为一

     

    先上代码:
    <!DOCTYPE html>
    <html>
        
    <head>
        <style>
            body
            {
            background-color:#d0e4fe;
            }
            h1
            {
            color:orange;
            text-align:center;
            }
            p
            {
            font-family:"Times New Roman";
            font-size:20px;
            }
        </style>
    </head>
     
     
    <body>
        <h1>CSS example!</h1>
        <p>This is a paragraph.</p>
    </body>
     
    </html>        

    代码比较简单,而且很明显,CSS是写在head部分的,在各种标签中加以说明,渲染body中各对应标签的内容.

    效果如下:

    image

     

    CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:

    image

    选择器通常是您需要改变样式的 HTML 元素。

    每条声明由一个属性和一个值组成。

    属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。


    CSS 实例

    CSS声明总是以分号(;)结束,声明组以大括号({})括起来:

    p {color:red;text-align:center;}

    为了让CSS可读性更强,你可以每行只描述一个属性:

    实例

    p
    {
    color:red;
    text-align:center;
    }

     

    id选择器:

    <!DOCTYPE html>
    <html>
    <head>
    <style>
    #para1
    {
    text-align:center;
    color:red;
    } 
    </style>
    </head>
     
    <body>
    <p id="para1">Hello World!</p>
    <p>This paragraph is not affected by the style.</p>
    </body>
    </html>        

    效果如下:

    image

     

     

    类(class)选择器:

    <!DOCTYPE html>
    <html>
    <head>
    <style>
    .center
    {
    text-align:center;
    }
    </style>
    </head>
     
    <body>
    <h1 class="center">Center-aligned heading</h1>
    <p class="center">Center-aligned paragraph.</p> 
    </body>
    </html>        

    效果如下:

    image

    果然,CSS这东西看了,对很多东西开始有感觉,原来复杂的就是渲染.

    转载于:https://www.cnblogs.com/luhouxiang/p/4329809.html

    展开全文
  • Web语义化标准解读

    2020-11-25 23:26:16
    <p>css我就不写了mr10什么意思我猜你已经知道了。。 且不说<code><button class="button button-primary"></button>这种写法button本身就是一种冗余信息(我当没看见也罢),...
  • 1.让页面里的字体变清晰,变细用CSS怎么做?-webkit-font-smoothing在...附:效果展示2.font-style属性可以让它赋值为“oblique”,oblique是什么意思?在css规范这么描述的,让一种字体表示为斜体(oblique)...

    1.让页面里的字体变清晰,变细用CSS怎么做?

    -webkit-font-smoothing在window系统下没有起作用,但是在IOS设备上起作用;

    -webkit-font-smoothing:antialiased是最佳的,灰度平滑。

    附:效果展示


    2.font-style属性可以让它赋值为“oblique”,oblique是什么意思?

    在css规范中这么描述的,让一种字体表示为斜体(oblique),如果没有这样样式,就可以使用italic。

    oblique是一种倾斜的文字,不是斜体。


    3.position:fixed;在android下无效怎么处理?

    fixed的元素是相对整个页面固定位置的,你在屏幕上滑动只是在移动这个所谓的viewport,原来的网页还好好的在那,fixed的内容也没有变过位置,所以说并不是iOS不支持fixed,只是fixed的元素不是相对手机屏幕固定的。

    在head头中加入

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>


    4.如果需要手动写动画,你认为最小时间间隔是多久,为什么?

    多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms=16.7ms。


    5.display:inline-block 什么时候会显示间隙?

    • 有空格时候会有间隙。解决:移除空格
    • margin正值的时候。解决:margin使用负值
    • 使用font-size时候。解决:使用font-size:0、letter-spacing、word-spacing


    6.overflow: scroll时不能平滑滚动的问题怎么处理?

    • 高度尺寸不确定的时候,使用:overflow-y:scroll;
    • 高度尺寸确定的,要么没有滚动条,要么直接出现,不会出现跳动。
    • css3计算calc和vw单位巧妙实现滚动条出现页面不跳动:
    .wrap-outer {
        margin-left: calc(100vw - 100%);
    }

        或者

    .wrap-outer {
        padding-left: calc(100vw - 100%);
    }

    首先,.wrap-outer指的是居中定宽主体的父级,如果没有,创建一个

    然后,calc是css3的计算

    100vw是浏览器的内部宽度,而100%是可用宽度,不含滚动条

    calc(100vw-100%)是浏览器的滚动条的宽度

    展开全文
  •    女朋友要做毕业设计,题目是:基于web的信息抽取的研究与实现。     开始想着做个类似新闻发布的玩意儿...这里的交叉和匹配是什么意思? 4.楼下的做过web信息抽取吗?
  • 第二点选择中途撤销是什么意思呢?举个最简单的例子,用微信聊天的时候,点击了一个好友,可以进入聊天界面,但是如果我点中了一个好友,突然又不想和他聊天了,我会多按...
  • xss攻击(一)

    2019-06-11 21:13:42
    前言: xss也是web安全的一种常见的攻击方式,想要学习,就先要了解是什么。 xss攻击的定义: XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为...
  • rpc和document的区别

    千次阅读 2012-04-26 13:48:59
    rpc和document到底是什么意思?他们如何同"encoded/literal"相关联?二者的冲突来自哪里? binding的style和use 通常情况下,web服务是由一个wadl文件来描述的的。在这个文件,抽象的描述所支持的web服务操作和...
  • 我有三个jsp,每个jsp都要填一些字段内容,我现在的做法在每个jsp的action中将该jsp的字段存入数据库,但这样存在两个问题,对数据库有压力,另外,在后两个jsp不是很好获得第一个jsp操作数据库时插入新的条目的...
  • html入门到放弃笔记

    2018-05-15 15:06:12
    WEB中支持的图像格式 1、*.jpg 2、*.gif(动图) 3、*.png(透明) 2、图像的语法 标记: 属性: 1、src :指定要显示图像的 URL 2、width :图像的宽度 3、height :图像的高度 4、title :鼠标悬停时,要...
  • arcgis工具

    2012-10-22 22:37:31
    如:“AREA”,如果查询的个人地理数据库数据,则需要将字段名包含在方括号内,如:[AREA],如果查询的ArcSDE地理数据库数据或是ArcIMS要素类或ArcIMS影象服务子层的数据,则不需要将字段名括起,如:AREA ...
  • 右边 控制器对应的函数,只要某个请求符合这七行某一行的要求,那么这条请求就会触发最后一列的方法。这 Laravel 对于 RESTful 的规范,它不仅仅帮我们省去了几行路由配置代码,更...
  • 对应的 <code>ArticleController</code> 的 <code>create()</code> 方法,下面我们手动新建这个方法: <pre><code>php public function create() { return view('admin/article/create'); ...
  • 无需关注里边的内容是什么,至于怎么打包和解决资源依赖的,往下看。 本地开发环境 我们使用开源web框架搭建一个webserver,便于本地开发和调试,以及灵活地处理前端路由,以<code>...
  • 处理css路径引用等问题</li><li>style-loader:动态把样式写入css</li><li>eslin-loader:使用eslint</li></ul> 包管理 包管理现在使用的还是 <code>NPM</code> 。 官方文档:...
  • " 是什么意思呢? javascript: 表示在触发默认动作时,执行一段 JavaScript 代码; javascript:; 表示什么都不执行,这样点击时就没有任何反应,相当于去掉 a 标签的默认行为。 select - option 绑定 Vue 实例 ...
  • 层叠样式表(英文全称:Cascading Style Sheets)一种用来表现HTML...一,圣杯布局1,什么是圣杯布局呢?所谓圣杯布局,所代表的意思就是用于实现一个两侧宽度固定,中间宽度自适应的三栏布局2,构建圣杯布局的操作...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

web中style是什么意思