如何在html中设置网页背景颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在html中设置网页背景颜色相关的知识,希望对你有一定的参考价值。

<html><head></head><body>
<div style="background-color:red;height:100px"></div>
<div style="background-color:blue;height:200px"></div>

</body></html>

颜色自己调,可以用取色器查看颜色,例如background-color:#789999; 如果需要加边框可以用border属性

<html><head></head><body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div>

</div></div></body></html>

建议你先了解一下div/CSS布局,同一种布局有不同的实现方式。
参考技术A <body style="background:#ccc">

如何在 Java 中设置 JButton 的背景颜色?

【中文标题】如何在 Java 中设置 JButton 的背景颜色?【英文标题】:How to set a background color of a JButton in Java? 【发布时间】:2011-01-06 09:06:58 【问题描述】:

我正在开发 Java 桌面应用程序。其中我在JPanel 上有4 个JButtons。现在我希望每当单击一个按钮时,它的背景颜色都会更改为其他颜色(例如橙色)以表示它已被单击,并且所有其他 3 个按钮的背景颜色都重置为默认颜色(以防其中任何一个具有橙色背景颜色)。

因此,一次只能有一个按钮为橙色。

我目前应用的方法是在JButton button1的xxxActionPerformed()方法中实现了如下代码

button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);

其余三个按钮也是如此。

现在实际上,我不希望背景颜色为灰色(对于未点击的按钮)。相反,我想要默认背景颜色,以便背景颜色根据最终用户平台的外观调整自己以适应 GUI 的外观。

第一季度。如何获取默认背景颜色?

第二季度。这是执行此操作的正确方法吗?或者是否有任何其他机制可以将所有四个按钮分组到一个按钮组中,以便一次只能有一个具有指定属性(如单选按钮)?

【问题讨论】:

【参考方案1】:

Q1.:要获取按钮的 GUI 颜色,只需这样做

button1.setBackground(Color.Orange);
button2.setBackground(java.awt.SystemColor.control);
button3.setBackground(java.awt.SystemColor.control);
button4.setBackground(java.awt.SystemColor.control);

使用这个类 (java.awt.SystemColor.*),您可以获得用户界面所有元素的颜色。

Q2.:我从未听说过分组按钮。那么,我不能回答你这个问题。

希望对你有帮助。

【讨论】:

【参考方案2】:

您可以从 UIManager 获取按钮的标准背景颜色:

button1.setBackground(UIManager.getColor("Button.background"));

据我所知,按键可能会有不同的外观和感觉。这是一个不错的 webstart 应用程序,它显示了所有可用的密钥:

http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/

【讨论】:

【参考方案3】:

    只需使用null 即可使用默认颜色:

    button1.setBackground(Color.ORANGE);
    button2.setBackground(null);
    ...
    

    考虑使用带有 ButtonGroup 的 JToggleButtons,设置按钮的 Icon 和 PressedIcon。无需更改背景颜色。

    button1 = new JToggleButton(new ImageIcon("0.jpg"));
    button1.setSelectedIcon(new ImageIcon("1.jpg"));
    button2 = new JToggleButton(new ImageIcon("0.jpg"));
    button2.setSelectedIcon(new ImageIcon("2.jpg"));
    ...
    ButtonGroup group = new ButtonGroup();
    group.add(button1);
    group.add(button2);
    ...
    

【讨论】:

+1 建议最佳方法(使用 JToggleButton)。我一直在寻找这种方法。谢谢 @trashgod 我用它很多次都没有问题,但没有 JToggleButtons ......无论如何,这取决于外观和感觉是否尊重它:-|这是使用 UIManager 的颜色或使用图标的好理由 null 对我不起作用。如果设置为 null,则按钮变为透明,这是不同颜色背景的问题。这是在香草 windows sun jdk 7 上。 @Cookie : by documentation "[...] 仅当组件不透明时才使用背景颜色,[...] 尊重此属性取决于外观,有些可以选择忽略它。”【参考方案4】:

这是基于example的“Button.background”的横截面:

*** 金属 javax.swing.plaf.metal.MetalLookAndFeel 636 个条目 Button.background: javax.swing.plaf.ColorUIResource[r=238,g=238,b=238] *** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1052 个条目 按钮背景:com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel$NimbusProperty@60961dff *** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 个条目 Button.background: javax.swing.plaf.ColorUIResource[r=174,g=178,b=195] *** Mac OS X com.apple.laf.AquaLookAndFeel 705 个条目 Button.background:com.apple.laf.AquaNativeResources$CColorPaintUIResource[r=238,g=238,b=238]

【讨论】:

【参考方案5】:

你有没有研究过java中的装饰器模式,你将一个按钮传递给一个方法,该方法根据按钮是否是当前活动的按钮来装饰它,例如它是否悬停在上面。

public Jbutton decorateButton(JButton b, boolean isHoveredOver)
    if(isHoveredOver)
        b.setBackground(getContentPane().getBackground().GREEN);
    return b;

您从 MouseEvent 或 ActionEvent 方法调用此方法,然后发出 repaint() 。将所有按钮放入一个数组或向量中并循环遍历它,将每个按钮传递给 decorateButton 方法,并将初始布尔值设置为 false,然后在事件中将其设置为 true。 这样,初始值是默认值,然后按钮在操作时被装饰,按钮将显示为组的一部分

【讨论】:

【参考方案6】:

如果您希望可以重新设计整个按钮 UI

public class buttonUI extends javax.swing.plaf.basic.BasicButtonUI

buttonUI(JButton b)
    b.setContentAreaFilled(false);


@Override
    public void paint(Graphics g,JComponent c)
             Graphics2D g2d = (Graphics2D) g;
             g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
             AbstractButton b = (AbstractButton) c;
             g2d.setFont(font.deriveFont(11f));
             Dimension d = b.getSize();
             FontMetrics fm = g2d.getFontMetrics();
             g2d.setColor(new Color(100,100,100));
             String caption = b.getText();
             int x = (d.width - fm.stringWidth(caption)) / 2;
             int y = (d.height + fm.getAscent()) / 2 - 2;
             g2d.drawString(caption, x, y);        
           

在你的主要代码中使用类似

jButton1.setUI(new buttonUI(jButton1));

这就是我的使用方式..你也可以有自己的方式

【讨论】:

以上是关于如何在html中设置网页背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在卡片背景中设置多种不同的颜色

怎样在JFrame中设置背景图片

jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色

Dw代码中插入背景图片的代码是啥?

CSS如何随机定义网页中的背景颜色

如何在 loadView 中设置背景颜色?