背景:我正在为我的Web应用程序做一个主要的新功能版本,我认为通过更新用户界面“庆祝”也会很好。由于我没有专业重新设计的预算,我想我可以对style.css表做一些微妙的改动。
理想情况下,会有一个程序可以导入我的style.css表(颜色是围绕Windows XP设计的),并以Windows 7的风格导出一个新的style.css表。 虽然我已经看过程序允许你导入css表并自己玩每种颜色,然后导出[我没有时间或眼睛做的事情],我没有看到任何改变你的整个css表自动而在你的颜色之间保持某种相关性。
我编写了以下VBA代码[我知道它可以进行大量改进,但我只是把它一起扔到实验中]这将改变style.css表的所有颜色(如果它被粘贴到活动的A列中) Excel表格)。假设CSS颜色用十六进制表示,例如#123456(其中12是红色成分,34是绿色成分,56表示蓝色成分)现在的代码使得颜色的红色成分更大,而蓝色成分较少。 [见函数makeWarmer]
Sub changeCSSColors()
For j = 1 To 1390 'number of rows
a = Cells(j, 1)
b = InStr(a, "#")
If b > 0 Then
aHex = UCase(Mid(a, b + 1, 6))
If isHexS(aHex) Then
a = Left(a, b) + makeWarmer(aHex) + Mid(a, b + 7)
Cells(j, 1) = a
End If
End If
Next j
End Sub
Function isHex(aChar)
If InStr("ABCDEFabcdef01234567890", aChar) > 0 Then isHex = True Else isHex = False
End Function
Function isHexS(aString)
For j = 1 To Len(aString)
b = Mid(aString, j, 1)
If Not isHex(b) Then isHexS = False: Exit Function
Next j
isHexS = True
End Function
Function makeWarmer(aString)
b = addOneToChar(Mid(aString, 1, 1))
c = subOneToChar(Mid(aString, 5, 1))
makeWarmer = addOneToChar(Mid(aString, 1, 1)) + Mid(aString, 2, 1) + addOneToChar(Mid(aString, 3, 1)) + Mid(aString, 4, 1) + addOneToChar(Mid(aString, 5, 1)) + Mid(aString, 6, 1)
End Function
Function swapBlueGreen(aString)
swapBlueGreen = Mid(aString, 3, 2) + Mid(aString, 1, 2) + Mid(aString, 5, 2)
End Function
Function addOneToChar(aChar)
If (aChar >= "0" And aChar <= "8") Or (aChar >= "A" And aChar <= "E") Then
aChar = Chr(Asc(aChar) + 1)
ElseIf aChar = "9" Then
aChar = "A"
ElseIf aChar = "F" Then
aChar = "F"
End If
addOneToChar = aChar
End Function
Function subOneToChar(aChar)
If (aChar >= "1" And aChar <= "9") Or (aChar >= "B" And aChar <= "F") Then
aChar = Chr(Asc(aChar) - 1)
ElseIf aChar = "A" Then
aChar = "9"
ElseIf aChar = "0" Then
aChar = "0"
End If
subOneToChar = aChar
End Function
我还通过使用SwapBlueGreen函数更改蓝色和绿色组件进行了实验。但是,无论使用哪种功能,我都无法获得满意的视觉效[网络应用程序看起来很奇怪]
有没有人有任何其他功能的想法,而不是我可以使用的makeWarmer或SwapBlueGreen,也许是某种掩盖。或者也许有一些软件可以做我想要的。