Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 什么';内联样式和类之间的区别是什么?_Css_Inline Styles - Fatal编程技术网

Css 什么';内联样式和类之间的区别是什么?

Css 什么';内联样式和类之间的区别是什么?,css,inline-styles,Css,Inline Styles,在我的头脑中,我一直知道在任何项目中使用类而不是内联样式。但是这两者之间有什么有效的区别吗?原因很简单。CSS的要点是将内容(HTML)与表示(CSS)分开。这一切都是关于可访问性和可用性 我想不出内联风格有什么优点 CSS就是关于,和 使用样式表,更改外观就像更改HTML代码中的一行一样简单。犯错误或客户不喜欢更改?恢复到旧的样式表 其他优点: 您的网站可以自动调整到不同的媒体,如打印输出和手持设备 有条件地包含CSS修复,对于不应命名的gawd可怕浏览器,成为一个快照 你的用户可以很容易地定

在我的头脑中,我一直知道在任何项目中使用类而不是内联样式。但是这两者之间有什么有效的区别吗?

原因很简单。CSS的要点是将内容(HTML)与表示(CSS)分开。这一切都是关于可访问性和可用性

我想不出内联风格有什么优点

CSS就是关于,和

使用样式表,更改外观就像更改HTML代码中的一行一样简单。犯错误或客户不喜欢更改?恢复到旧的样式表

其他优点:

  • 您的网站可以自动调整到不同的媒体,如打印输出和手持设备

  • 有条件地包含CSS修复,对于不应命名的gawd可怕浏览器,成为一个快照

  • 你的用户可以很容易地定制网站与插件,如时尚

  • 您可以更轻松地在站点之间重用或共享代码


  • 假设您使用的是外部样式表,那么除了前面提到的之外,还有一个好处就是缓存。浏览器将下载并缓存您的样式表一次,然后在每次引用时使用本地副本。这使您的标记更加紧凑。要传输和解析的标记越少,用户的反应就越快,体验也就越好。

    首先:

    • 如果HTML是独立于整个网站设计(例如共享模板代码)构建或生成的,则添加合理命名的类和ID,专门链接到外部样式表。使用足够的元素允许任意CSS操作。例如,请参见这适用于所有CMSE、程序、脚本和其他动态生成的网站内容。HTML输出必须绝对不包含任何样式或布局。没有例外
    假设您处理的是静态内容,那么:

    • 如果有任何方法可以重用样式,请将其作为类并链接到样式表

    • 如果无法重用样式(这是一个一次性的东西,在其他任何地方都没有意义),则使用引用元素id的

    • 如果CSS属性仅在周围HTML的上下文中有意义(例如
      clear:
      的一些用法),那么我将样式内联到元素中

    许多人把这种说法称为异端,就像许多人谴责现代编程语言中使用
    goto
    一样

    然而,我的观点是,你应该根据自己的情况选择最能减少总体工作量的方法,而不是遵循风格教条。样式表添加了一个间接级别,使站点级别的更改变得容易,并有助于建立一致性。但是,如果您在每个页面上有几十个只在一个地方使用的类,那么您实际上是在增加工作量,而不是减少工作量

    换句话说,不要因为别人告诉你这是正确的方法而做一些愚蠢和令人困惑的事情。

    使用常识

    每个人都知道,在理想的世界中,表达和内容应该分开。每个人都知道,这在很多时候都不太管用。我们都知道应该使用div而不是tables来进行布局,但是我们也知道,在任何情况下,如果您不能完全控制内容,它都无法正常工作

    下载一个500k的样式表来设置一个元素的样式,因为你已经采用了所有可能的样式并将其粘贴在样式表中,这会杀死你的页面;下载500个较小的样式表来设置你的页面样式,因为你需要它们,这也会杀死你的页面


    重用在概念上是很好的,但现实是它只在某些上下文中有用。这同样适用于这个概念存在的几乎任何地方。如果你的项目做了你想让它做的事情,在每一个合理的浏览器中都这样做,以一种有效的方式这样做,并且这样做是可靠的,那么你就可以很好地去做,重构css并不比代码难太多。

    内联样式绝对是一种方法。只要看看-这在类和外部样式表中是不可能的


    或者等等…

    如果有选择,我的第一个首选项将是类/其他选择器。但是,在某些情况下,内联样式是唯一的选择。在其他情况下,仅仅一个CSS类本身就需要太多的工作,而其他类型的CSS选择器在这里更有意义

    假设您必须在给定的列表或表格上打斑马线。您可以简单地使用选择器来完成这项工作,而不是将特定的类应用于每个备用元素或行。这将使代码保持简单,但不会使用CSS类。致:

    仅使用类 当然,我们可以为div可以采取的每一种可能的立场使用类,但这并不推荐。很容易看出原因:

    .pos_20_49 {
        top: 20px;
        left: 49px;
    }
    .pos_20_50 {
        top: 20px;
        left: 50px;
    }
    // keep going for a million such classes if the container size is 1000x1000 px
    
    <div class="pos_20_49">..</div>
    
    .pos\u 20\u 49{
    顶部:20px;
    左:49px;
    }
    .pos_20_50{
    顶部:20px;
    左:50px;
    }
    //如果容器大小为1000x1000 px,则继续运行一百万个这样的类
    ..
    
    我只能想到内联样式合适和/或合理的两种情况

  • 如果以编程方式应用内联样式。例如,使用JavaScript显示和隐藏元素,或者在呈现页面时应用特定于内容的样式(请参见#2)

  • 如果内联样式在id不合适或不合理的情况下完成单个元素的类定义。例如,为库中的单个图像设置元素的
    背景图像

  • HTML


    类是可以添加到HTML元素中的可重用样式。e、 g-

    <style> 
       .blue-text{color:Blue;}
    </style>
    
    
    .blue文本{颜色:蓝色;}
    
    您可以将此蓝色文本类用于任何H
    <ul>
        <li>first</li>
        <li style="background-color: #CCC">second</li>
        <li>third</li>
        <li style="background-color: #CCC">fourth</li>
    </ul>
    
    <div style="position: absolute; top: 20px; left: 49px;">..</div>
    
    .pos_20_49 {
        top: 20px;
        left: 49px;
    }
    .pos_20_50 {
        top: 20px;
        left: 50px;
    }
    // keep going for a million such classes if the container size is 1000x1000 px
    
    <div class="pos_20_49">..</div>
    
    <div id="gallery">
        <div class="image" style="background-image:url(...)">...</div>
        <div class="image" style="background-image:url(...)">...</div>
        <div class="image" style="background-image:url(...)">...</div>
    </div>
    
    #gallery .image {
        background: none center center;
    }
    
    <style> 
       .blue-text{color:Blue;}
    </style>
    
    <p style="color:Blue;">---</p>
    
    :root{
    --grid-col : 12;
    --grid-col-gap:1em; 
    --grid-row-gap:1em;
    --grid-col-span:1;
    --grid-row-span:1;
    --grid-cell-bg:lightgray;
    }
    
    .grid{
        display: grid;
        grid-template-columns: repeat(var(--grid-col), 1fr);
        column-gap: var(--grid-col-gap);
        row-gap: var(--grid-row-gap);
    }
    
    .grid-item{
        grid-column-end: span var(--grid-col-span);
        grid-row-end: span var(--grid-row-span);
        background: var(--grid-cell-bg);
    }
    
        <ul class="grid" style="--grid-col:4">
            <li class="grid-item">Item 1</li>
            <li class="grid-item">Item 2</li>
            <li class="grid-item">Item 3</li>
            <li class="grid-item">Item 4</li>
            <li class="grid-item">Item 5</li>
            <li class="grid-item">Item 6</li>
            <li class="grid-item">Item 7</li>
            <li class="grid-item">Item 8</li>
        </ul>
    
        <ul class="grid" style="--grid-col:3">
            <li class="grid-item">Item 1</li>
            <li class="grid-item">Item 2</li>
            <li class="grid-item">Item 3</li>
            <li class="grid-item">Item 4</li>
            <li class="grid-item">Item 5</li>
            <li class="grid-item">Item 6</li>
            <li class="grid-item">Item 7</li>
            <li class="grid-item">Item 8</li>
        </ul>