有没有办法让文字响应颜色?

时间:2017-07-13 07:20:15

标签: html css

这可能是一个愚蠢的问题,但我的背景颜色具有高对比度,我希望我的<ul>的{​​{1}}根据背景颜色为每个人 <li>。我真的不想通过向每个人添加<li>属性来膨胀我的CSS。如果有任何办法,请有人告诉我。

我正在开发一个CodePen项目。这是一个个人投资组合页面。仅供参考,我将与您分享,但尚未完成。我希望我的技能下的列表是“颜色响应”(如果它甚至存在),以便底部的项目更容易阅读。

Here is the pen.

非常感谢!

2 个答案:

答案 0 :(得分:2)

只需使用CSS,您就可以mix-blend-mode使用ul

cssul元素作为mix-blend-mode: difference;

的Chcek

答案 1 :(得分:0)

mix-blend-mode属性定义元素的内容应如何与其背景混合。这意味着任何图像或文本,边框或标题都将受此属性的影响。

here。参考:Pen

&#13;
&#13;
var modeList = [
  "normal",
  "multiply",
  "screen",
  "overlay",
  "darken",
  "lighten",
  "color-dodge",
  "color-burn",
  "hard-light",
  "soft-light",
  "difference",
  "exclusion",
  "hue",
  "saturation",
  "color",
  "luminosity"
],
  elem = document.querySelector(".box"),
  propertyName = "mix-blend-mode",
  modeElem = document.querySelector(".mode-name"),
  duration = 2500;

var i = 0;
var activate = setInterval(function() {
  if (i == modeList.length) i = 0;
  var mode = modeList[i];
  elem.style.mixBlendMode = mode;
  modeElem.innerText = mode;
  i++;
}, duration);
&#13;
@charset "UTF-8";

* {
	box-sizing: border-box;
}

body, html {
	margin: 0;
	height: 100%;
	padding: 0;
	-webkit-font-smoothing: antialiased;
}

.wrapper {
	background: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/14179/washington.jpg") no-repeat center center fixed;
	background-size: cover;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-family: "Nocturno Display Medium 4", Georgia;
	font-style: normal;
	font-weight: normal;
	font-stretch: normal;
	height: 100%;
	width: 100%;
}

.box {
	justify-content: center;
	align-items: center;
	display: flex;
	flex-direction: column;
	font-size: 8vw;
	border-top: 10px solid #BF0A30;
	border-bottom: 10px solid #BF0A30;
	line-height: 1;
	background-color: #002B65;
	color: white;
	background-size: cover;
	mix-blend-mode: hard-light;
	height: 400px;
	height: 50vh;
	width: 100%;
	text-align: center;
	text-transform: uppercase;
}

.box p {
	text-rendering: optimizeLegibility;
	word-spacing: 5px;
	margin: 0;
}

.mode-name-wrapper {
	position: absolute;
	bottom: 12vh;
	left: 0;
	right: 0;
	color: #002B65;
	text-align: center;
	text-transform: uppercase;
	font-size: 17px;
	margin: 0 auto;
	padding: 0;
	width: 135px;
	height: 135px;
	border: 5px solid white;
	background-color: #ddd;
	border-radius: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.mode-name-wrapper:before {
	content: "★";
	display: block;
	line-height: 1;
	font-size: 20px;
	margin-top: -20px;
	margin-bottom: 10px;
	color: #ef0d3c;
	animation: spin 2.5s ease;
	animation-iteration-count: infinite;
	transform-origin: center center;
}

.mode-name {
	position: relative;
	left: 0;
	right: 0;
	animation: nudge 2.5s ease;
	animation-iteration-count: infinite;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

@keyframes nudge {
	0% {
		transform: translate(0, 0);
	}

	80% {
		transform: translate(0, 0);
	}

	90% {
		transform: translate(-10px, 0);
	}

	93% {
		transform: translate(12px, 0);
	}

	95% {
		transform: translate(-8px, 0);
	}

	100% {
		transform: translate(0, 0);
	}
}
&#13;
<link rel="stylesheet" href="https://fonts.typonine.com/WF-003562-001299.css" type="text/css" />
<div class="wrapper">
  <div class="box">
    <p>Washington D.C.</p>
  </div>
  <small class="mode-name-wrapper">
    <span class="mode-name">hard-light</span>
   </small>
</div>
&#13;
&#13;
&#13;