html布局源代码实例,CSS网页布局全精通

本文介绍了如何使用CSS和HTML创建两栏和三栏布局,包括浮动布局、定位布局等方法。通过示例代码,详细讲解了浮动侧边栏、双重浮动、浮动主内容以及定位等技术,解决了不同浏览器之间的兼容性问题,如盒模型问题,并探讨了如何实现等高栏位布局的技巧。
摘要由CSDN通过智能技术生成

在本文中将使用四种常见的做法,结合CSS于结构化标记语法制作两栏布局.很快地就会发现,不用嵌套表格,间隔用的GIF也能做出分栏版面布局.

相关文章:CSS网页布局开发小技巧24则

稍后在"技巧延伸"中,将会讨论Windows版Internet Explorer 5.0盒模型的问题,以及绕过它的方法.也将分享一个以CSS达成等宽栏位的简单秘密.

要如何以CSS作出两栏版面布局?

答案是有好几种方法,为了带领你起步,同时帮助你了解两种常见方法的差异(浮动与定位),因此先把焦点放在四种不同的方法上,在此每一种方法都能做出两栏布局,同时具备页首和页尾.

我的愿望是:你能以本章作为指引开始构建一个网站,并发挥本书其他章节之内的方法制作内容.

我们将讨论的四种方法都应用在文档的

与标签之间,同时我会在开始讨论每种方法之前介绍将会使用的标记语法结构.

为了让你了解围绕着每种方法的页面结构,让我们大致看一下还需要加入些什么:

/p>

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

CSS Layouts

...方法示范...

为了让你可以了解要达成的版面配置,请看图12-1:这就是我们想要完成的分栏版面布局.

ad977323e6775b417d7fd47974f65a4f.gif

图12-1 两栏布局的框线图

#p#

方法A:浮动侧边栏

...主体部分...

上面就是我们要以CSS的float属性制作成分栏布局的标记源代码,使用

标签把页面元素分成几个逻辑段落,每个都设定了唯一的id:

#header: 包含标题图片,导航栏等

#sidebar: 包含额外的内容链接与相关资讯

#content: 包含主要的文字内容,也是页面的焦点所在.

#footer: 包含版权信息,作者,辅助链接等

把这些页面段落拆开,能让我们能完全控制版面布局,只要指定几条CSS规则,就可以马上完成两栏布局.

为页首与页尾指定样式

要把内容结构转化成分栏布局的第一步,是为页首,页尾加上一点背景颜色以及一点内补丁,这样能使内容更容易凸显出来.

#header {

padding: 20px;

background: #ccc;

}

#footer {

padding: 20px;

background: #eee;

}

为方法A的结构加上前面这段CSS会使它显示成图12-2这样,我为各个段落加了一些假象的内容.

1fcd08910cea195202f12dc1ab39ac9c.gif

图12-2 为页首,页尾指定样式

当然,在#header与#footer里,可以继续为这些段落指定适当的样式,像是font-family,color,链接色彩等等.现在让我们把两栏版面制造出来.

浮动侧边栏

方法A的精华,在于它以float属性把#sidebar放到主要内容

的任一边去.以这个例子来说,将它放到内容的右侧,但是放到另一侧当然也行.

浮动#sidebar的关键在于,在标记源代码中,必须出现在主内容

之前,这样一来,侧边栏的顶部就会与主内容的顶部排齐.

接着,为#sidebar加上float属性,同时把它的宽度设为30%,指定背景颜色:

#header {

padding: 20px;

background: #ccc;

}

#sidebar {

float: right;

width: 30%;

background: #999;

}

#footer {

padding: 20px;

background: #eee;

}

图12-3是加上这段CSS之后的显示效果,能看到侧边栏跑到右边去了,而主要内容在侧边栏范围之内流动.

df1880b389aebf6f1724de824dc68d0d.gif

图12-3 把#sidebar浮动到主要内容的右侧

真正的栏位

看看图12-3,我们还没有真正完成两栏布局,为了完成这个效果还必须取#content这个

,指定与忧侧边栏宽度相同的右外补丁,因此产生放置#sidebar的空间.

需要加上的CSS就是这么简单:

#header {

padding: 20px;

background: #ccc;

}

#sidebar {

float: right;

width: 30%;

background: #999;

}

#content {

margin-right: 34%;

}

#footer {

clear: right;

padding: 20px;

background: #eee;

}

我们会发现,我们给content设定的右外补丁大小比#sidebar还大4%,如此能在两栏之间留下一点空位.图12-4是以浏览器查看的效果,你可以发现只要为

设定右外补丁,就能造出第二栏的假象.

02dff7b58f381b6c3f2f161fe881228d.gif

图12-4 两栏布局

同时要留意的是对#footer所加上的clear:right规则,这个规则很重要,能确保页尾一定会出现在侧边栏和内容区之后,而不受两栏的长度变动影响,页尾会避开任何先前出现的float内容.

现在有了能使用的两栏布局,可以继续为现在的CSS声明加上更多边界,背景,边框与其他元素,使外观更吸引人.

至今为止我们都以百分比设定宽度,以便造出灵活的布局(栏宽会自动随着使用者的视窗宽度缩放).我们也能以像素单位造出定宽布局,但是以像素指定内外补丁大小时,必须注意IE for Windows错误解析CSS盒模型的问题,你能在本章的"盒模型问题"找到更多信息以及能用的解决方法.

#p#

方法B:双重浮动

...header content here...

...main content here...

...sidebar content here...

...footer content here...

方法A的缺点之一是:为了浮动侧边栏,则必须在标记源代码之内把侧边栏放到主内容

的前面,关闭CSS的浏览器,文字浏览器,屏幕阅读器与其他不支持CSS的设备将会在页面主要内容之前显示(或念出)侧边栏的内容.这样实在不严谨.

我们可以利用float做法,并避开这个问题,只要交换标记源代码里的主内容,侧边栏

的位置(如上所示),然后以CSS将两者浮动到不同边即可.

#header {

padding: 20px;

background: #ccc;

}

#content {

float: left;

wi

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简单的Java程序,实现了上述要求: ```java import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class TextFileViewer extends JFrame implements ActionListener { private JTextArea textArea; private JTextField fileField; private JButton openButton; public TextFileViewer() { super("文本文件阅读器"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setPreferredSize(new Dimension(600, 400)); textArea = new JTextArea(20, 40); JScrollPane scrollPane = new JScrollPane(textArea); JLabel fileLabel = new JLabel("文件名:"); fileField = new JTextField(20); fileField.setEditable(false); openButton = new JButton("打开"); openButton.addActionListener(this); JPanel panel = new JPanel(); panel.add(fileLabel); panel.add(fileField); panel.add(openButton); Container contentPane = getContentPane(); contentPane.add(scrollPane, BorderLayout.CENTER); contentPane.add(panel, BorderLayout.SOUTH); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == openButton) { JFileChooser fc = new JFileChooser(); int result = fc.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); fileField.setText(file.getName()); try { BufferedReader reader = new BufferedReader(new FileReader(file)); textArea.setText(""); String line; while ((line = reader.readLine()) != null) { textArea.append(line + "\n"); } reader.close(); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "无法打开文件!", "错误", JOptionPane.ERROR_MESSAGE); } } } } public static void main(String[] args) { new TextFileViewer(); } } ``` 我们先来分析一下这个程序的代码实现: 1. 创建一个继承自JFrame类的窗口类TextFileViewer,实现ActionListener接口。 2. 定义三个成员变量:一个JTextArea对象,一个JTextField对象,一个JButton对象。 3. 在TextFileViewer类的构造函数中: a. 调用JFrame的构造函数,设置窗口标题和关闭操作。 b. 设置窗口的首选大小为600x400。 c. 创建一个JTextArea对象,并将其放置到一个JScrollPane中。 d. 创建一个标签(JLabel)、一个文本框(JTextField)和一个按钮(JButton),并将它们添加到一个JPanel中。 e. 将JScrollPane和JPanel分别添加到窗口的中心区域和南侧区域。 f. 调用pack()方法,使窗口适应内部组件的大小。 g. 调用setVisible()方法,显示窗口。 4. 实现ActionListener接口中的actionPerformed(ActionEvent e)方法,当用户点击“打开”按钮时,打开一个文件选择对话框,读取用户选择的文件并在文本区域中显示文件内容。 5. 在main()方法中创建一个TextFileViewer对象。 这个程序的界面比较简单,主要由一个JScrollPane和一个JPanel构成。其中JScrollPane用于显示文本内容,JPanel用于放置标签、文本框和按钮。用户可以通过点击“打开”按钮来选择要打开的文件,程序将读取文件内容并显示在文本区域中。 注意:这个程序只是一个简单的示例,没有做太多的错误处理和异常处理。实际应用中,需要对各种异常情况进行适当的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值