1

问题是。我想插入 margin-left: 20%; 到 maincontent,当用户登录时。

不,我的语法没有问题,我可以在 js 中完成,但我告诉我使用 php。所以我还在 css 和我的身体中添加了一个类。

<?php
if ($_SESSION['username']){


include("/view/leftmenu.php");

}
?>

如何在 php 中激活 css?

4

3 回答 3

4

正如语法高亮显示的那样,您试图将单引号放在单引号字符串中。

您的选择是:

  1. 用 . 转义单引号\'
  2. 请改用双引号。
  3. 使用?> ... <?php而不是echo.
  4. 根本不要用 JavaScript 做这个!您控制服务器端;为什么不只是添加一个类到 body 之类的logged-in,并有一个 CSS 规则之类的body.logged-in #maincontent { margin-left: 20%; }

(因为它的价值,你的 JavaScript 也是无效的;你需要引用20%. 百分比不是合法的 JS。)

于 2013-11-07T22:10:35.287 回答
1

把你的 JavaScript 放在双引号中,里面有单引号。你可能也想运行你的include第一个。include不需要()。您的代码可能看起来更像:

<?php
session_start(); // has to be run before any headers are sent
if(isset($_SESSION['username'])){
  include '/view/leftmenu.php';
  echo "<script type='text/javascript'>$('#maincontent').css('margin-left', '20%');</script>";
}
?>

然而,更好的解决方案看起来更像:

<?php
session_start(); $marginLeft = '0'; // $marginLeft should be your default
if(isset($_SESSION['username'])){
  $marginLeft = '20%';
  include '/view/leftmenu.php';
}
echo "<!DOCTYPE html><html><head><style type='text/css'>".
"#maincontent{margin-left:$marginLeft;}</style></head><body>".
"<div id='maincontent'>content</div></body></html>";
?>

一个更好的方法,看起来像:

<?php
session_start(); $className = 'withoutMargin'; // $marginLeft should be your default
if(isset($_SESSION['username'])){
  $className = 'withMargin';
  include '/view/leftmenu.php';
}
?>
<!DOCTYPE html>
<html>
  <head>
    <style type='text/css'>
      .withoutMargin{
         margin-left:0;
       }
       .withMargin{
         margin-left:20%;
       }
    </style>
  </head>
<body>
<?php echo "  <div class='$className'>"; ?>
  <!-- your content here -->
  </div>
</body>
</html>

注意:您上面的代码不必完全像这样。这只是说明概念。您将有更多的代码测试来设置提交等等。此外,对于我推荐的第二个示例,我将使用外部 CSS,因此它由用户的浏览器缓存。

于 2013-11-07T22:09:31.690 回答
0

20% 需要用引号括起来:

$('#maincontent').css('margin-left', '20%');

这也适用于 px、em、pt 和任何其他形式的 CSS 度量单位。

于 2013-11-07T22:08:55.873 回答