6.8 可扩展模块化架构CSS代码规范(1)——SMACSS(I)
针对上一节提到的目标、误区,我们需要一套对应的CSS编写方式,用前人总结的最佳实践来作为指导方针,并且这种方式不应该根据项目的变化而变化。关于CSS的架构方式,比较重要的三个分别是:OOCSS,BEM和SMACSS。Drupal选择了SMACSS,他是Drupal8的CSS架构标准。Zen、Omega、Zurb Foundation主题都采用了SMACSS的方式来架构CSS。它的作者是Jonathan Snook,你可以在http://smacss.com找到更多详细资料,以下只做简单介绍。
SMACSS描述了如何编写灵活可扩展的CSS代码的方法,它的核心思路是将CSS规则进行合理的分类。一共分为以下五类:
1. Base
2. Layout
3. Module
4. State
5. Theme
6.7 主题中的CSS架构——目标和误区 CSS architecture——Goals and Pitfall
Css很容易,只要会英文的人,都可以写css。但是,正是因为它太容易了,我们很少有人去关注如何有效的整理和架构它。接下来的几节中,我们将试图讨论这个问题。
对于刚入门的themer来说,他们最容易犯的一个错误就是,他们会立刻用css去做主题。他们也许是从前端转来的,也许是从其他的CMS转而做Drupal主题的。对于这些人来说,css是他们最熟悉,最能把握分寸的部分。基本上,只要指定好标签的style,然后创建几个模版文件,就算是做了一回主题了。或者他们是开发人员,主题和CSS只是他们顺带的工作,能做就不错了,做得很好并不是他们所追求的。
Drupal是一个CMS,它并不知道你的网页会设计成什么样子,也不知道你的网站的业务逻辑。Drupal的设计者和开发者为你提供的页面代码,是为了尽可能的灵活,让你能更容易的实现业务所需要的功能。但是,如果你的CSS技术足够过硬的话,你就可以为页面上的每一个markup写出对应的样式,并最终让页面和设计图一致。
但是这样的坏处是:
1 臃肿的CSS
2 样式和markup绑定在一起
爆竹声声辞旧岁!除夕都快到了,恒创工作人员还在坚守阵地。大家都已经是“年前综合症”晚期患者了,还在假装坚挺,苦逼还在上班中……
为了响应广大客户的咨询和求助,恒创客服妹纸最悲催,大年29晚上还有晚班要上,一直坚持到年三十凌晨。
当然,年三十后,如果还有问题,客户可以提交服务单,我们有专业的技术会及时处理,新年了,祝福各位三羊开泰、羊羊得亿。
恒创科技:专注五年香港空间资源服务。深耕品质,注重口碑。
SQLSTATE[42S01]: Base table or view already exists: 1050 Table '"drupal"."variable"' already exists
大家好
我目前在使用 Drupal Commerce 做电子商务网站,有一些特殊的需要外包给 drupal 熟手,具体需求如下:
1. 我卖的产品是有使用期限的 买下的人可以看到自己还剩下多久 (6个月/一年/两年)
2. 买下的人可以用自己的推广码推广产品,使用推广码购买的人 和推广者 双方使用期限可以多一个月。
另外,这是一个英文网站,不过应该不会影响制作
有兴趣的人请和我联络!谢谢!!
我不是来踢馆的,我是来请教问题的。
关于css和js的加载问题:
在joomla里,CSS和JS都被强制写在Head里,所以这样会导致每个页面都会加载整个网站的css和js(反正我是没找到分离css和js的方法,也许有人找到了,能提醒下吗?),即使这个页面需要或者不需要,从而导致加载速度很慢。
我的问题是:
drupal能解决css和js分离的方法吗?即每个页面只加载与自己相关的CSS和js,而且js可以控制放到Body中,而不是在head里。
这里给大家介绍一个函数,我开始不知道,但是很好用 drupal_goto(),我直接加在了我写的vbo函数中了,然后执行成功后跳转到我制定的url,并且传参,
$arg = array(‘query’ => array(‘pid’ => $pid, ‘uid’ => $uid)); 传参数
drupal_goto(‘node/register’, $arg); drupal 内的网址 直接用drupal_goto(url,array(‘query’ => array(‘pid’ => $pid, ‘uid’ => $uid))); 不知道还有没知道的没,代码不要复制,符号不是英文的。 如果想要获取链接中的参数可以用arg();arg($index = NULL, $path = NULL):返回一个drupal的当前内部路径。当你访问诸如'node/10'的路径是,则arg(0)会返回'node',arg(1)返回'10'.