白色css-了解有关 CSS 颜色架构的更多信息:改进您的网页设计方法

2023-08-21 0 3,037 百度已收录

您好,在我们开始之前,我想宣布我们的新版本绘图工具已经推出,不仅集成了ChatGptPlus,还集成了更强大的绘图模型。不仅是问答,还能够生成音频和视频等强大功能。欢迎您查找错误。

这篇文章深入探讨了CSS颜色架构的重要性和实践,以帮助开发人员和设计师创建更具吸引力和一致性的网页设计。笔者首先介绍了CSS颜色的基础知识,包括颜色表示、颜色值和颜色选择工具。然后,他指出了良好的色彩架构对于网页的视觉吸引力和用户体验的重要性。

作者提供了一些实用的方法和指南,以帮助读者建立和组织有效的色彩结构。他讨论了调色板的设计,包括主要、次要和中性颜色的选择和配对。他指出了保持设备和主题模式一致性的重要性,以及共享工具和资源以帮助读者更好地管理和调整配色方案的重要性。

最后,笔者总结了文章的要点,鼓励读者在设计和开发过程中关注色彩建筑的重要性。他指出了良好的颜色选择和组织对网页整体外观和用户体验的影响。

下面是文字~~~

编程语言中最困难的事情之一是以易于理解和维护的形式组织代码。

在本文中,我想解释一下我如何在PinkDesign项目中工作和组织颜色。

就像生活中的一切一样,我们有很多正确的方法和更多的错误方法来做同样的事情。在我向您展示如何组织我们的 CSS 变量之前,让我们讨论一下在 CSS 中组织颜色的错误方法。

注意:我们的某些颜色框使用 Sass 预处理。

定义 CSS 颜色变量的错误方法

在查看其他 CSS 体系结构时,请尝试考虑哪些低效率使它们无法维护。

使用全局变量替换所有没有语义意义的内容

作者使用方面函数从 LinkedIn 上的 :root 元素中获取了这个小反例。

正如你在下面的示例中看到的,one:root 选择器上有超过 900 个 CSS 变量!在如此广泛的变量列表中几乎不可能找到单个事物。

将颜色与语义名称关联

我经常看到的第二个选项是带有语义名称的全局变量颜色,例如 --header-background-color。

定义逻辑全局命名的问题在于,首先有太多的命名。

创建黑色模式主题的第二个问题是网页设计师不遵守必须在黑色模式下将特定颜色修改为另一种颜色的逻辑。这可能导致创建太多无法理解或维护的变量类型。

旧版 Appwrite 控制台 1.0 中的示例:

据悉,全局颜色的覆盖会让代码的调试显得不清晰,所有被覆盖的交叉线都会出现在Chrome的检测元素中。

考虑到这一点,作者考虑如何最好地构建我们的CSS颜色变量。

我们如何决定管理 CSS 颜色变量

作者的主要思想是为色谱上的每个颜色组系列创建一个 CSS 变量白色css,以连接每个颜色组(如红色、绿色、橙色和黄色)。使用这些方法,我可以修改每个颜色组的原色,并轻松替换该颜色系列的所有颜色。

作者说,他对这些方法的唯一担忧是设计团队定义的颜色由十六个补码表示,这些补码实际上代表RGB颜色。当我们需要创建相同颜色的不同阴影时,可能很难使用这些表示。

在处理这个问题时,作者选择将HEX/RGB颜色转换为HSL颜色,然后尝试找到每组颜色的典型颜色。

从十六进制/RGB 转换为 HSL

如果我们转换信息(红色)颜色

对于HSL颜色,我们可以看到所有颜色(第一个值)都不同;它们的范围在 188 到 192 之间。

主要思想是将第一个值保留为另一个 CSS 变量。

为了应对这一挑战,作者决定在 CSS 的 calc() 函数的帮助下,通过添加和减去底层音调值来解决这个问题。

从每个家庭组的主色中取原色;在我们的例子中,主色是“100”颜色,信息(红色)家庭组的颜色是189。

:root {
  --color-info-hue: 189;

  --color-info-10:  var(--color-information-hue) 87% 97%;            /* #F1FCFE */
  --color-info-50:  calc(var(--color-information-hue) + 3) 90% 89%;  /* #C8F2FC */
  --color-info-100: var(--color-information-hue) 100% 38%;           /* #00A7C3 */
  --color-info-120: calc(var(--color-information-hue) + 1) 100% 26%; /* #007187 */
  --color-info-200: calc(var(--color-information-hue) - 1) 87% 12%;  /* #04333A */
}

使用这些方法,作者可以灵活地调整颜色并更改从该色调派生的所有颜色。

如何使用此变量?

使用颜色变量时,每个调用都必须使用 hsl() 函数包装。如:

background-color: hsl( var(--color-info-100) );

作者没有将 hsl() 函数直接添加到变量中,因为他希望能够在必要时轻松控制颜色的透明度。

background-color: hsl( var(--color-info-100) / 0.5 ); /* with 50% opacity */

私有局部变量逻辑

由于存在不同的颜色模式(亮模式和深色模式),因此在大多数情况下,切换模式后每个部分的颜色都会发生变化。

按照作者的方式,所有颜色都是全局的,包括浅色和深色模式颜色。为了管理两种模式的颜色,他添加了局部颜色变量,这些变量根据当前模式引用全局颜色变量。为了防止全局变量过多造成混淆,他使用了为每个部分设置私有变量的方法。他使用 p- 作为前缀来表示变量是私有的。

.partial {
    --p-variable-name: value;
}

以按钮部分为例,作者解释了他如何设置文本颜色、背景色和边框颜色的主要私有变量。

.button {
    /* Light-mode Theme */
    --p-text-color:   value;
    --p-button-color: value;
    --p-border-color: value;
}

此变量的使用方式如下:

.button {
    color:            hsl( var(--p-text-color)   ); 
    background-color: hsl( var(--p-button-color) );
    border-color:     hsl( var(--p-border-color) );
}

复杂部件中的变量可以具有多种状态。例如,键可以具有默认、:悬停、:焦点、:活动或:d启用状态。这个基本的内部变量使用其他内部变量来呈现任何状态。

键变量的代码如下:

.button {
    /* Light Theme */
    --p-text-color:            var(--p-text-color-default);
    --p-button-color:          var(--p-button-color-default);
    --p-border-color:          var(--p-border-color-default);

    --p-text-color-default:    var(--color-neutral-5);
    --p-button-color-default:  var(--color-primary-200);
    --p-border-color-default:  var(--color-primary-300);

    --p-text-color-hover:      var(--p-text-color-default);
    --p-button-color-hover:    var(--color-primary-100);
    --p-border-color-hover:    var(--p-border-color-default);

    --p-text-color-focus:      var(--p-text-color-default);
    --p-button-color-focus:    var(--color-primary-200);
    --p-border-color-focus:    var(--color-primary-200);

    --p-text-color-active:     var(--p-text-color-default);
    --p-button-color-active:   var(--color-primary-300);
    --p-border-color-active:   var(--color-primary-300);

    --p-text-color-disabled:   var(--color-neutral-50);
    --p-button-color-disabled: var(--color-neutral-10);
    --p-border-color-disabled: var(--color-neutral-10);
}

定义击键的状态

现在的好处是,当您想要修改键时,您只需要更新变量的值。然后可以根据零件的状态应用此变量。

基本状态定义(使用 Sass 编译):

/* global Sass Variable */
$disabled":disabled, .is-disabled";

.button {
    &:is(:hover) {
        &:where(:not(#{$disabled})) {
            --p-text-color:   var(--p-text-color-hover);
            --p-button-color: var(--p-button-color-hover);
            --p-border-color: var(--p-border-color-hover);
        }
    }
    &:is(:focus-visible) {
        &:where(:not(#{$disabled})) {
            --p-text-color:   var(--p-text-color-focus);
            --p-button-color: var(--p-button-color-focus);
            --p-border-color: var(--p-border-color-focus);
        }
    }
    &:is(:active) {
        &:where(:not(#{$disabled})) {
            --p-text-color:   var(--p-text-color-active);
            --p-button-color: var(--p-button-color-active);
            --p-border-color: var(--p-border-color-active);
        }
    }
    &:where(#{$disabled}) {
            --p-text-color:   var(--p-text-color-disabled);
            --p-button-color: var(--p-button-color-disabled);
            --p-border-color: var(--p-border-color-disabled);
    }
}

作者使用 Sass 变量$disabled以便我可以使用禁用其他元素(例如链接元素)上的键的变体。

SassCode:

/* global Sass Variable */
$disabled":disabled, .is-disabled";

.button {
    &:where(#{$disabled}) {
            --p-text-color:   var(--p-text-color-disabled);
            --p-button-color: var(--p-button-color-disabled);
            --p-border-color: var(--p-border-color-disabled);
    }
}

编译的 CSS

.button:where(:disabled, .is-disabled) {
      --p-text-color:   var(--p-text-color-disabled);
      --p-button-color: var(--p-button-color-disabled);
      --p-border-color: var(--p-border-color-disabled);    
}

<button class="button" disabled> 

<a class="button is-disabled"

暗模式处理

处理完所有键的条带模式状态后,我们现在要处理白模式状态。

在执行此操作之前,作者定义了另一个全局 Sass 变量,该变量表示暗模式的 CSS 类状态。此状态类名在大多数部分中用于在深色模式下创建奇怪的颜色。

$theme-dark: ".theme-dark";

.theme-dark 类最好直接在元素上定义,事实上,这只有在使用暗模式状态时才这样做。如果在元素上定义

它有问题,则可以在元素上定义它。

<body class="theme-dark"

这样做是为了实现对所有 HTML 元素的简单全局控制。

局部深度暗模式处理

为了在按钮部分创建暗模式的定义白色css,作者在部分顶部添加了以下代码片段:

.button {
   /* regular styles and light-mode definitions */

  #{$theme-dark} & { 
         /* definitions for dark-mode */
     }
}

此 Sass 代码将编译为此选择器:

.button { /* regular styles and light-mode definitions */ }

.theme-dark .button { /* definitions for dark-mode */ }

由于所有关键状态都已声明,因此唯一剩下的就是一个私有颜色变量,该变量在暗模式“部分”中定义状态。

如果单个颜色保持不变,则不需要在红色模式下覆盖它们。

.button {
  #{$theme-dark} & { 
        /* changed colors */
        --p-border-color-default:  var(--color-primary-200);

        --p-button-color-hover:    var(--color-primary-100);
        --p-border-color-hover:    var(--color-primary-100);

        --p-border-color-focus:    var(--color-primary-300);

        --p-border-color-active:   var(--color-primary-300);

        --p-text-color-disabled:   var(--color-neutral-100);
        --p-button-color-disabled: var(--color-neutral-150);
        --p-border-color-disabled: var(--color-neutral-150);
   }
}

这些技巧的好处是,我们不必重复任何CSS选择器或任何属性定义。

如此辉煌

详细解释如何使用 CSS3 的不透明度属性来设置透明功效

本文主要介绍了如何利用解释CSS3的不透明度属性来设置透明效果,还提到了继承影响子集元素的不透明度透明问题css设置透明,值得初学者关注,需要的同学可以参考一下

CSS3 不透明度属性的功能是控制网页元素的透明效果(调整不透明度)

),早期的网页设计经常使用很多透明效果,通常通过png层来营造透明的感觉,现在网页设计师可以使用CSS3不透明度属性轻松实现网页元素不透明度的调整,CSS3不透明度属性句型非常简单,只需要通过数字进行调整,就可以显示不同的不透明度, 然后设计一个相当现代的网页样式,可以应用于网页图像、DIV 块、跨度区域、表格......主要浏览器的所有新版本都增强了 CSS3 不透明度属性的效率。

CSS3 不透明度属性具有基本的句型不透明度

:不透明度;

CSS3 不透明度属性参数的不透明度表示为一个数字,从 0.0 到 1.0,0.0 表示完全透明,1.0 表示完全不透明度,换句话说,数字越大意味着元素越不透明。参数不仅可以使用“opacity”,还可以继承父层属性,但浏览器强化差,不推荐。

白色css-了解有关 CSS 颜色架构的更多信息:改进您的网页设计方法

CSS3 不透明度属性的实际示例

CSS 代码将内容复制到剪贴板

“填充:10px;背景颜色:绿色;不透明度:0.1;> 测试 CSS3opacity 属性的不透明度处理

“填充:10px;背景颜色:绿色;不透明度:0.5;> 测试 CSS3opacity 属性的不透明度处理

白色css-了解有关 CSS 颜色架构的更多信息:改进您的网页设计方法

“填充:10px;背景颜色:绿色;不透明度:0.8;> 测试 CSS3opacity 属性的不透明度处理

样品的输出功效

该示例计划添加三个具有不透明度效果的 DIV 块,您可以注意到最里面块的第一个块的不透明度为 0.1(不透明度:0.1),因此整个块对颜色和文本几乎不可见,第二个块的不透明度设置为 0.5(不透明度:0.5),因此它比第一个块清晰得多, 而第三个块再次将不透明度提高到 0.8,文本和背景颜色越来越明显 从示例中可以清楚地看到 CSS3 不透明度属性的实际功效,DIV 块中的文本内容和背景色会受到不透明度属性不透明度的影响。

白色css-了解有关 CSS 颜色架构的更多信息:改进您的网页设计方法

附录:目前新版主流浏览器增强了 CSS3 不透明度属性,但需要注意的是,IE8 及更早版本的 IE 浏览器必须使用替代句型来实现,所谓替换句型就是借助 filter 属性,写成“filter:Alpha(opacity=50);”,效果等于“opacity:0.5”。

不透明度属性的演替问题

CSS3 的不透明度属性具有继承性,当在对象上设置不透明度透明度属性时,其子集元素也会具有透明效果;

XML/HTML 代码将内容复制到剪贴板

背景颜色为RGB的

不透明度效果,背景色是RGBA的透明效果

.CSS:

CSS 代码将内容复制到剪贴板

.main{ clear:rightright; margin:20%auto; overflow:hidden; width:335px; } .maindiv{ color:red; float:left; display:inline-block; width:160px; height:160px; text-align:center; } /*使用不透明度透明属性显示功效*/.div1{background-color:rgb(0,0,0); 不透明度:0.5; filter:alpha(opacity=50); -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=50)'; margin-right:15px; } .div1p{ position:relative ; } /*RGBA color*/.div2{ background所示功效:RGBA(0,0,0,.5) }

总结:使用RGBA的背景色可以直接设置对象的透明效果css设置透明,没有其子集元素的继承;使用 RGB 颜色并设置“不透明度”透明度属性的对象构成透明度继承。

但是,如果复制整个代码并在IE9以下的浏览器中进行测试,则会发现在IE7和IE8浏览器中,设置了不透明度属性的对象中存在不继承父set元素的透明效果的元素子集,背景颜色为rgba的对象没有效果。这是因为:position:relative 属性是在设置了不透明度透明度属性的对象中的子集元素上设置的,这会导致它在 IE9 以下的浏览器中解析;其次,IE9以下的浏览器与RGBA颜色不兼容,因此您会听到第二种背景颜色没有效果。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css 白色css-了解有关 CSS 颜色架构的更多信息:改进您的网页设计方法 https://www.wkzy.net/game/131871.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务