sizebox模型下载_Beware of box model size (留心盒子模型大小)

文章为csslint中文版译文,点击原文可查看英文版,如遇到翻译错误或错别字啥的,请留言指出~ 译文内容不定期更新~ 返回目录

盒子模型是CSS当中最常误解的内容之一。"盒子模型 (Box model)"会参考一系列盒子属性来最终确定元素的显示。盒子的最里层为 内容。内容被内边距包裹,内边距之外再由边框包裹。盒子最终的宽度也就由以上的属性相互影响,是不是有些小困惑。来,看下面的例子:

.mybox {

border: 1px solid black;

padding: 5px;

width: 100px;

}

新手可能会觉得拥有mybox类的元素宽度为100像素。但实际上呢,宽度是112像素,这是因为宽度最终由 内容 内边距 边框相加而得。当开发人考虑到以上属性组合时,也会因为不同的想法行为产生错误。

通过将box-sizing属性值设置为border-box,可以使绝大多数游览器(现代游览器)遵循 宽高是 元素本身的大小,例子如下:

.mybox {

box-sizing: border-box;

border: 1px solid black;

padding: 5px;

width: 100px;

}

那么现在,这个拥有mybox类的元素,实际宽度就为100像素了,内边距与边框 将占据其中的空间,剩下的88像素将是内容的宽度.

规则详情

规则 ID: box-model

此规则 意在消除潜在的盒子模型大小问题。因此,规则将在以下情况出现警告:

1.width被与border,border-left,border-right,padding,padding-left,padding-right属性同时使用时

2.height被与border,border-top,border-bottom,padding,padding-top,padding-bottom属性同时使用时

如果box-sizing属性已指定,则假定你已非常清楚盒子模型的规则,以上的情况,此规则将不会出现警告。

以下的例子将会出现警告:

/* width and border */

.mybox {

border: 1px solid black;

width: 100px;

}

以下的例子将 不会 出现警告:

/* width and border with box-sizing */

.mybox {

box-sizing: border-box;

border: 1px solid black;

width: 100px;

}

/* width and border-top */

.mybox {

border-top: 1px solid black;

width: 100px;

}

/* height and border-top of none */

.mybox {

border-top: none;

height: 100px;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较具体的编程问题。我可以给你提供一个Java Swing的实现思路: 1. 创建一个JFrame窗口,其中包含一个JPanel面板和一个JComboBox组合框。 2. 在JPanel面板上添加一个JLabel标签,并设置其字体为默认字体(例如,new Font("宋体", Font.PLAIN, 12))。 3. 监听JComboBox组合框的选择事件,根据用户选择的字体和字号,设置JLabel标签的字体。 4. 根据用户选择的粗体和斜体选项,设置JLabel标签的字体样式。 下面是Java代码实现: ``` import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FontPanel extends JFrame implements ActionListener { private JLabel label; private JComboBox<String> fontBox; private JComboBox<Integer> sizeBox; private JCheckBox boldBox; private JCheckBox italicBox; public FontPanel() { setTitle("Font Panel"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new BorderLayout()); label = new JLabel("Hello, World!"); label.setFont(new Font("宋体", Font.PLAIN, 12)); panel.add(label, BorderLayout.CENTER); JPanel controlPanel = new JPanel(); fontBox = new JComboBox<>(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()); fontBox.addActionListener(this); controlPanel.add(fontBox); sizeBox = new JComboBox<>(); for (int i = 1; i <= 100; i++) { sizeBox.addItem(i); } sizeBox.addActionListener(this); controlPanel.add(sizeBox); boldBox = new JCheckBox("Bold"); boldBox.addActionListener(this); controlPanel.add(boldBox); italicBox = new JCheckBox("Italic"); italicBox.addActionListener(this); controlPanel.add(italicBox); panel.add(controlPanel, BorderLayout.SOUTH); add(panel); setVisible(true); } public void actionPerformed(ActionEvent e) { String fontName = (String)fontBox.getSelectedItem(); int fontSize = (int)sizeBox.getSelectedItem(); int fontStyle = 0; if (boldBox.isSelected()) { fontStyle |= Font.BOLD; } if (italicBox.isSelected()) { fontStyle |= Font.ITALIC; } label.setFont(new Font(fontName, fontStyle, fontSize)); } public static void main(String[] args) { new FontPanel(); } } ``` 这个程序创建了一个包含字体选择器和样式选择器的JFrame窗口,可以动态改变JLabel标签的字体。你可以根据自己的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值