小编Ste*_*ato的帖子

最佳实践 - CSS主题

很多时候,当我为客户设计网站时,我使用构成整个表示层的一个(或多个)CSS文件来设计他的网站.通常情况下,客户的需求在"网站主题"方面发生了巨大变化.他可能会根据自己的口味要求从基于蓝/绿色的主题改为基于红色/橙色的主题.问题是,我的文件包含所有信息,包括:

  • 元素的定位
  • 容器的背景图像
  • 字体大小,颜色

什么是"解耦"CSS文件以使其"主题"意识到的最佳实践,同时保持其所有关于定位的信息?

我的可能做法清单如下:

  1. 使用包含通用信息和定位的默认CSS文件,使用仅实现背景图像,字体大小和颜色的子CSS文件
  2. 命名你的第一个CSS文件(比如说蓝色/绿色的文件名为"sky").实现基于天空的另一个主题,覆盖更改主题所需的任何CSS属性并命名它(例如,红色/橙色将是"深红色").

编辑:根据下面提供的很好的答案,我更新了我的列表中的其他可能的解决方案列表:

  1. 使用SASS(最好用Compass @see Andrew Vit撰写)特别是他们的"Mixins"功能.它需要CSS并引入了一种非常干燥的程序化方法.您可以使用它覆盖现有的类.- treefrog
  2. 使用OOCSS方法.- 安德鲁维特
  3. 一种称为独立块(俄语文章)的技术,它使用类前缀模拟一种命名空间来分隔特定块.- angryobject
  4. 三种基础样式表.分离排版,位置和Eric Meyer提供的重置样式表.- 大卫托马斯
  5. 使用已知组织使用的标准化方法,如Dojo库,jQuery UI等.
    - S .Jones

在哪种情况下哪个更好?还有其他易于维护和灵活的方式吗?

迄今为止的最佳答案:使用SASS制作非常灵活的样式表.当然,这意味着轻微的学习曲线,但根据一些评论,SASS似乎是动态样式表(以及HAML)的下一个方法.

css

27
推荐指数
1
解决办法
6227
查看次数

如何在php中使用getenv(),在共享主机上使用已编译的php-cgi在.htaccess中使用SetEnv

只是在上下文中阐明主要问题:

在我的开发机器上,PHP5.3.1作为模块安装在Apache上,我在应用程序的根.htaccess文件中使用SetEnv APPLICATION_ENVIRONMENT开发.然后可以使用getenv('APPLICATION_ENVIRONMENT')从任何php脚本轻松检索它.

在生产服务器上,在sharedhost(dreamhost)上,我自己编译了php5.3.1,因为它没有直接支持.除了getenv('APPLICATION_ENVIRONMENT')返回false之外,一切正常.

在我的域的sharedhost root .htaccess中,我使用此.htaccess文件

Options +ExecCGI
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi

<FilesMatch "^php5?\.(ini|cgi)$">
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
</FilesMatch>

Options -indexes
Run Code Online (Sandbox Code Playgroud)

php5.cgi驻留在/ cgi-bin中并且运行良好.当然在我的应用程序的根文件夹中,我有另一个.htaccess定义:

SetEnv APPLICATION_ENVIRONMENT production
Run Code Online (Sandbox Code Playgroud)

但是当使用getenv('APPLICATION_ENVIRONMENT')时它返回false,任何想法如何解决这个问题?

php apache .htaccess shared-hosting

15
推荐指数
2
解决办法
5万
查看次数

如何禁用Ubuntu guest虚拟机,Windows 7主机上的虚拟框内的水平滚动?

这篇文章是来自superuser.com 的重复,但由于我没有答案,我开始怀疑这是一个用户问题,可能更多是一个编程问题(因为配置文件),所以这里是:

我使用Windows 7作为主机,Ubuntu Karmic作为客户操作系统安装了客户工具,当从主机切换到客户机时我遇到了令人讨厌的故障:垂直滚动切换到水平!(使用鼠标滚轮).由于我不关心水平滚动,我该如何禁用它?

我检查过网页,我发现的唯一一件事是在xorg.conf文件中播放并添加"InputDevice"部分

选项"ZAxisMapping""4 5"

这将只启用垂直滚动.问题是,我的配置文件中没有该部分所以我猜我需要添加

Section "InputDevice"
    Identifier "VBoxMouse"
    Driver "vboxmouse"
    Option "ZAxisMapping" "4 5"
EndSection
Run Code Online (Sandbox Code Playgroud)

但重启xserver后似乎没有用.

有什么解决方法吗?

x11 scrollwheel virtualbox windows-7 ubuntu-9.10

10
推荐指数
1
解决办法
3032
查看次数

PHP文件修改时间,以毫秒为单位

我在那里,我正在编写一个单元测试,断言文件没有被修改.测试代码执行时间不到一秒,因此我想知道是否可以以毫秒为单位检索文件修改时间.filemtime()函数以秒为单位返回UNIX时间戳.

我目前的解决方案是使用sleep(1)函数,这将确保在检查它是否被修改之前经过1秒.我不喜欢这种解决方案,因为它大大减慢了测试速度.

我无法通过get_file_contents()声明内容相等,因为可以重写的数据是相同的.

我猜这不可能,是吗?

php filemtime

7
推荐指数
2
解决办法
5760
查看次数

为什么有些网站使用GET参数访问特定版本的CSS或JavaScript文件?

我已经看到很多网站在他们生成的HTML源代码中执行此操作(甚至是stackoverflow本身),使用GET参数访问特定版本的CSS或JavaScript文件.有什么意义呢?

例:

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6230">
<script type="text/javascript" 
        src="http://sstatic.net/so/js/master.js?v=6180"></script>
Run Code Online (Sandbox Code Playgroud)

它只是一种连贯性或最佳实践方式吗?是否只是因为浏览器上具有旧缓存版本的客户端被迫更新其过时版本?

html javascript css

6
推荐指数
1
解决办法
878
查看次数

在Symfony2中的配置中动态设置BaseUrl

我知道在Symfony2的配置中,没有对基本URL的引用,因为没有请求; 应用程序可以在cli中运行,也可以在Web服务器中运行,因此我们不能依赖请求.但是,我仍然有配置要求样式表或javascript基本URL(例如JQueryHelperBundle,您可以在其中设置您的jquery本地路径 - 作为本地URL).问题是,有没有办法动态设置配置的基本URL,而不必更改它,以便:

  • 应用程序可以从开发中的任何目录移动,无论是www/myproject还是www/foo/myproject,无需更改设置
  • 除了用apache重写基本URL之外,生产将起到相同的作用(虚拟主机是常见的,其中baseurl被映射到web目录为'/').

有没有办法获得基本网址信息?使用$_SERVER['DOCUMENT_ROOT']减去内核根目录之间的区别是否可以检测这样的基本URL?但是虚拟主机如何将网址重新定位到网页目录?硬编码基本URL完全将项目耦合到它在开发中的位置,并且移动项目需要每次都更改基本URL,这很烦人.

那么,有没有办法根据环境动态检测Symfony2配置中的基本URL,而不依赖于请求?

apache configuration base-url symfony

5
推荐指数
1
解决办法
2632
查看次数

如何为Vim中的每个选项卡提供不同的缓冲区列表?

是否有可能将缓冲区列表"附加"到Vim中的特定选项卡?我目前正在使用MiniBufferExplorer,它显示了很好的选项卡中的所有缓冲区.它可以使用标准vim选项卡进行组合,但插件的缓冲区列表包含所有缓冲区,使用选项卡变得有点无用.这是我想要的一个例子:

选项卡A包含以下缓冲区列表:

  • FILEA
  • FILEB
  • FileC

选项卡B包含以下缓冲区列表:

  • 提交
  • FileE
  • FileF

目前我拥有的是:

选项卡A包含缓冲区列表

  • FILEA
  • FILEB
  • FileC
  • 提交
  • FileE
  • FileF

选项卡B包含以下缓冲区列表:

  • FILEA
  • FILEB
  • FileC
  • 提交
  • FileE
  • FileF

当谈到"缓冲区列表"时,我指的是列出迷你缓冲区插件的选项卡.

任何解决方法来实现这一目标?

vim tabs minibuffer

4
推荐指数
1
解决办法
927
查看次数

如何从Symfony2表单的div切换到表格布局?

在这里看到有一个可能的树枝模板,用于将表单呈现为基于表格的html.我想知道如何更改一个表单的默认布局,从默认的基于div的html到基于表.根据文档,可以做到:

{% form_theme form 'path_to_template.html.twig' %}
Run Code Online (Sandbox Code Playgroud)

我如何包含那个树枝模板,我尝试过这样的事情:

{% form_theme form 'Twig:Form:form_table_layout.html.twig' %}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

forms symfony twig

3
推荐指数
2
解决办法
4038
查看次数