我的CSS只应用于单个页面,而不是所有页面CodeIgniter


My CSS only applied to a single page instead of all pages CodeIgniter

我正在使用Codeigniter框架创建一个简单的网站。我还下载了一个响应式HTML5模板。问题是CSS只应用于网站的基本URL。但是当我访问其他页面时,CSS并没有被应用。请参阅下面的屏幕截图。

控制器->Pages.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Pages extends CI_Controller {
    function index()
    {
         if ( ! file_exists(APPPATH.'/views/index.php'))
        {
                // Whoops, we don't have a page for that!
                show_404();
        }
                $this->load->view('header');
                $this->load->view('index');
                $this->load->view('footer');
    }
    function about()
    {
         if ( ! file_exists(APPPATH.'/views/about.php'))
        {
                // Whoops, we don't have a page for that!
                show_404();
        }
                $this->load->view('header');
                $this->load->view('index');
                $this->load->view('footer');
    }
}

View->Header.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE HTML>
<html>
	<head>
		<title>Official Website of Barangay Canlubang</title>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta name="description" content="" />
		<meta name="keywords" content="" />
		<link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:700italic,400,300,700' rel='stylesheet' type='text/css'>
		<!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]-->
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
		<script src="<?php echo base_url();?>js/skel.min.js"></script>
		<script src="<?php echo base_url();?>js/skel-panels.min.js"></script>
		<script src="<?php echo base_url();?>js/init.js"></script>
		<noscript>
			<link rel="stylesheet" href="<?php echo base_url();?>css/skel-noscript.css" />
			<link rel="stylesheet" href="<?php echo base_url();?>css/style.css" />
			<link rel="stylesheet" href="<?php echo base_url();?>css/style-desktop.css" />
		</noscript>
		<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
		<!--[if lte IE 9]><link rel="stylesheet" href="css/ie/v9.css" /><![endif]-->
	</head>

视图中的index.phpabout.php仅包含显示内容的HTML标记。

您没有type="text/css",还删除了<noscript> <noscript>

<noscript>
<link rel="stylesheet" href="<?php echo base_url();?>css/skel-noscript.css" />
<link rel="stylesheet" href="<?php echo base_url();?>css/style.css" />
<link rel="stylesheet" href="<?php echo base_url();?>css/style-desktop.css" />
</noscript>

更改为

<head>
// Meta
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
// Title
<title>Official Website of Barangay Canlubang</title>
// CSS
<link type="text/css" rel="stylesheet" href="<?php echo base_url();?>css/skel-noscript.css" />
<link type="text/css" rel="stylesheet" href="<?php echo base_url();?>css/style.css" />
<link type="text/css" rel="stylesheet" href="<?php echo base_url();?>css/style-desktop.css" />
// Scripts
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="<?php echo base_url();?>js/skel.min.js"></script>
<script src="<?php echo base_url();?>js/skel-panels.min.js"></script>
<script src="<?php echo base_url();?>js/init.js"></script>
<!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]-->
<!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]-->
<!--[if lte IE 9]><link rel="stylesheet" href="css/ie/v9.css" /><![endif]-->
</head>

使用<link rel="stylesheet" href="<?PHP echo base_url();?>css/something.css" />应该可以解决您的问题,这样它总是在每个页面上都包含CSS。

很简单,您的CSS链接在其他页面上是不正确的。当你在主页上时,将CSS链接到CSS/something.CSS是可行的,但当你进入其他页面时,这就像进入另一个文件夹。所以,你需要你的链接回到一个目录。

不要在样式表中使用css/something.css,而是使用/css/something.css

什么…/所做的就是在进入CSS目录之前让它返回一个目录。如果需要进一步澄清,请回复。谢谢!:(

<link rel="stylesheet" href="../css/something.css" />

更新1:你可能误解了对方和我说的话。

在主页上,您位于主目录中,因此主页的代码可以工作,因为CSS文件夹与索引页位于同一目录中。

然而,当你转到另一个页面时,你会进入主页所在目录的一个子目录,所以CSS文件夹就在这个目录之外的文件夹中。

类比:

假设我在Windows上,并且在C:''驱动器中。在C:''驱动器中,我有以下内容:

一个名为CSS的文件夹名为的文件夹关于一个名为index.html 的文件

所以,每当我转到这个目录时,它总是显示为index.html。index.html文件和CSS文件夹在同一个目录中。因此,链接到CSS/something.CSS是有意义的。

现在,我要转到"关于"页面。我通过进入about文件夹来完成此操作。然而,当我尝试链接到CSS文件夹时,它不在那里,因为它在about文件夹之前的文件夹中。

这是否意味着你必须在你的页面所在的每个文件夹中都有一个CSS文件夹?不你所要做的就是将其添加到链接的开头:../

你可能会问自己,加法是怎么做的在文件夹帮助之前?什么../它检查PREVIOUS目录中的CSS文件夹。

我希望这能澄清问题!:(

(另外,是的,我已经进入了你的网页,并尝试修改HTML,看看它是否有效。一旦你在非主页的页面中为所有CSS文件添加了这些更改,它就会有效。(

所有答案中缺少的一件事是,在您的html代码中,您必须匹配在该页面中创建的所有类(在该页面上显示css,即网站的基本URL(,复制在基本URL中声明的所有类,并将它们与元素一起粘贴到后续页面上。