我有一个宽度为80%的根div和宽度为100%的子节点,当我向子节点添加一个边框时会出现一个滚动条.我想这是因为100%宽度+ 1px边框溢出.我可以避免这样的问题吗?如何将子div定义为包含边框的父级?
我需要这个在IE8上运行
<div style="width:80%;overflow:auto;">
<div style="float:left;width:100%;border-left:1px solid;">
<div class="title">Title1</div>
<div style="width:100%;">
<div class="title">Title2</div>
<div class="title">Title3</div>
</div>
<div style="clear:both;"></div>
</div>
<div>text</div>
<div>text</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
div.title {
float: left;
width:33%;
}
Run Code Online (Sandbox Code Playgroud)
以下是我用更好的代码示例提出的问题的后续问题:
以下代码使用访问者模式:
class Animal { void accept(Visitor v) { v.visit(this); } }
class Cat extends Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}
interface Visitor {
public void visit(Animal a);
public void visit(Cat a);
public void visit(Dog a);
public void visit(Poodle a);
}
class TalkVisitor implements Visitor {
public void visit(Animal a) { System.out.println("?"); }
public void visit(Cat a) { System.out.println("Meow"); }
public void visit(Dog a) { System.out.println("bark"); }
public void visit(Poodle a) { System.out.println("Arf"); } …Run Code Online (Sandbox Code Playgroud) 我尝试使用扩展类的访问者模式.我有动物类列表,每个动物都是不同的.当我给访问者打电话时,它只执行谈话(动物a),而不是对象的具体实例.见下文:
class Animal {}
class Cat extends Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}
class Visitor {
public void talk(Animal a) { System.out.println("?"); }
public void talk(Cat a) { System.out.println("Meow"); }
public void talk(Dog a) { System.out.println("bark"); }
public void talk(Poodle a) { System.out.println("Arf"); }
}
public class Demo{
public static void main(String []args){
Visitor visitor = new Visitor();
Animal list[] = { new Cat(), new Dog(), new Poodle() };
for (Animal a : list) …Run Code Online (Sandbox Code Playgroud)