GVKun编程网logo

单击后如何使CSS a:active工作?(css点击后)

22

以上就是给各位分享单击后如何使CSSa:active工作?,其中也会对css点击后进行解释,同时本文还将给你拓展active-directory–如何使用security/sssd将ActiveDir

以上就是给各位分享单击后如何使CSS a:active工作?,其中也会对css点击后进行解释,同时本文还将给你拓展active-directory – 如何使用security / sssd将Active Directory与FreeBSD 10.0集成?、ActiveMQ高级特性:ActiveMQ之虚拟主题、ActiveX.exe、ActiveX.dll、ActiveX.控件,有啥区别?我要编写网页上的ActiveX该用哪一种?、activiti, 工作流,web 流程设计器,SSM,activiti 工作流等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

单击后如何使CSS a:active工作?(css点击后)

单击后如何使CSS a:active工作?(css点击后)

我正在尝试使菜单用作选项卡。选项卡本身工作正常,菜单链接也很好。.但是我想删除活动选项卡的底部边框,以使其看起来像您在该实际页面上。我尝试使用,#ida:active但似乎只有在按下链接后才能使用。我也有关于用javascript做到这一点的方法,但是我似乎无法找到一种方法来做到这一点。这是我活跃的CSS。

CSS :(请让我知道您是否需要更多的CSS)

#navigation a:active {    color: #000;    background: -webkit-gradient(linear, left top, left bottom, from(#DFE7FA), to(#FFF));    border-bottom-width:0px;}

谢谢,/ Pyracell

答案1

小编典典

从您的演示链接中的另一个答案的注释中,JavaScript不会有任何帮助,应该在您的PHP代码中完成。符合以下条件的东西:

<a <?php if (this_tab_is_selected){ ?>active'' <?php } ?>href=''LINK_TO_TAB'' >    TAB_NAME</a>

提及更改选项卡将重定向到另一个页面可能会帮助从xD开始获得更好的响应

根据您的代码以及创建选项卡的方式,您需要将更this_tab_is_selected改为true针对所选选项卡返回的代码。

PS您仍然需要进行CSS中其他答案中提到的修改。(将更#navigation a:active改为#navigation a.active

active-directory – 如何使用security / sssd将Active Directory与FreeBSD 10.0集成?

active-directory – 如何使用security / sssd将Active Directory与FreeBSD 10.0集成?

使用带有Kerberos TGT的AD后端的sssd在FreeBSD 10.0中运行在 Windows Server 2012 R2上的Active Directory中对用户进行身份验证的必要步骤是什么?
有一些棘手的考虑因素使一切都开箱即用. FreeBSD此时只支持sssd 1.9.6版.因此,不支持Enterprise Principal Names.

如果您的域名具有不匹配的UPN,则无法登录,因为在此过程中Kerberos身份验证将失败,即使FreeBSD支持使用Kerberos的企业主体名称,sssd也无法处理此情况.

因此,在sssd的实际版本中,您只能在同一域名中使用用户主体名称,例如:

Domain Name = example.com
NetBIOS Name = EXAMPLE
User Principal Name:
username@example.com sAMAccountName: username

了解这一点,我们可以描述在FreeBSD中成功验证AD用户的步骤.

1.配置Kerberos

使用以下内容创建文件/etc/krb5.conf:

[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = yes

2.安装Samba 4.1并将其配置为加入域

安装Samba 4.1:

$pkg install samba41

使用以下内容创建文件/usr/local/etc/smb4.conf:

[global]
    security = ads
    realm = EXAMPLE.COM
    workgroup = EXAMPLE

    kerberos method = secrets and keytab

    client signing = yes
    client use spnego = yes
    log file = /var/log/samba/%m.log

要求管理员Kerberos票证:

$kinit Administrator

然后加入域并创建密钥表

$net ads join createupn=host/server-hostname.example.com@EXAMPLE.COM -k
$net ads keytab create -k

3.使用Kerberos支持安装sssd软件包和Cyrus SASL

安装所需的包:

$pkg install sssd cyrus-sasl-gssapi

编辑文件/usr/local/etc/sssd/sssd.conf以匹配此设置:

[sssd]
    config_file_version = 2
    services = nss,pam
    domains = example.com

[nss]

[pam]

[domain/example.com]
    # Uncomment if you need offline logins
    #cache_credentials = true

    id_provider = ad
    auth_provider = ad
    access_provider = ad
    chpass_provider = ad

    # Comment out if the users have the shell and home dir set on the AD side
    default_shell = /bin/tcsh
    fallback_homedir = /home/%u

    # Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
    #ldap_sasl_mech = GSSAPI
    #ldap_sasl_authid = SERVER-HOSTNAME$@EXAMPLE.COM

4.为nsswitch.conf添加sssd支持

编辑文件/etc/nsswitch.conf以匹配此设置:

group: files sss
passwd: files sss

5.配置PAM以允许sssd身份验证并处理主目录创建

安装主目录创建的可选包:

$pkg install pam_mkhomedir

修改必要的PAM域以匹配此设置:

auth            sufficient      /usr/local/lib/pam_sss.so
account         required        /usr/local/lib/pam_sss.so        ignore_unkNown_user
session         required        /usr/local/lib/pam_mkhomedir.so  mode=0700
session         optional        /usr/local/lib/pam_sss.so
password        sufficient      /usr/local/lib/pam_sss.so        use_authtok

6.切换到启用SASL的OpenLDAP客户端

$pkg remove -f openldap-client
$pkg install openldap-sasl-client

7.最后确认一切正常

$getent passwd <username>

ActiveMQ高级特性:ActiveMQ之虚拟主题

ActiveMQ高级特性:ActiveMQ之虚拟主题

ActiveMQ支持的虚拟Destinations分为有两种,分别是
1.虚拟主题(Virtual Topics)
2.组合 Destinations(CompositeDestinations)

这两种虚拟Destinations可以看做对简单的topic和queue用法的补充,基于它们可以实现一些简单有用的EIP功能,虚拟主题类似于1对多的分支功能+消费端的cluster+failover,组合Destinations类似于简单的destinations直接的路由功能。

虚拟主题(Virtual Topics)
ActiveMQ中,topic只有在持久订阅(durablesubscription)下是持久化的。存在持久订阅时,每个持久订阅者,都相当于一个持久化的queue的客户端,它会收取所有消息。这种情况下存在两个问题:
1.同一应用内consumer端负载均衡的问题:同一个应用上的一个持久订阅不能使用多个consumer来共同承担消息处理功能。因为每个都会获取所有消息。queue模式可以解决这个问题,broker端又不能将消息发送到多个应用端。所以,既要发布订阅,又要让消费者分组,这个功能jms规范本身是没有的。
2.同一应用内consumer端failover的问题:由于只能使用单个的持久订阅者,如果这个订阅者出错,则应用就无法处理消息了,系统的健壮性不高。
为了解决这两个问题,ActiveMQ中实现了虚拟Topic的功能。使用起来非常简单。
对于消息发布者来说,就是一个正常的Topic,名称以VirtualTopic.开头。例如VirtualTopic.TEST。
对于消息接收端来说,是个队列,不同应用里使用不同的前缀作为队列的名称,即可表明自己的身份即可实现消费端应用分组。例如Consumer.A.VirtualTopic.TEST,说明它是名称为A的消费端,同理Consumer.B.VirtualTopic.TEST说明是一个名称为B的客户端。可以在同一个应用里使用多个consumer消费此queue,则可以实现上面两个功能。又因为不同应用使用的queue名称不同(前缀不同),所以不同的应用中都可以接收到全部的消息。每个客户端相当于一个持久订阅者,而且这个客户端可以使用多个消费者共同来承担消费任务。

生产者:
 

import javax.jms.Connection;  
import javax.jms.DeliveryMode;  
import javax.jms.JMSException;  
import javax.jms.MessageProducer;  
import javax.jms.Session;  
import javax.jms.TextMessage;  
import javax.jms.Topic;  
  
import org.apache.activemq.ActiveMQConnectionFactory;  
  
public class Producer {  
  
    public static void main(String[] args) throws JMSException {  
        // 连接到ActiveMQ服务器  
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.18.67:61616");  
        Connection connection = factory.createConnection();  
        connection.start();  
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);  
        // 创建主题  
        Topic topic = session.createTopic("VirtualTopic.TEST");  
        MessageProducer producer = session.createProducer(topic);  
        // NON_PERSISTENT 非持久化 PERSISTENT 持久化,发送消息时用使用持久模式  
        producer.setDeliveryMode(DeliveryMode.PERSISTENT);  
        TextMessage message = session.createTextMessage();  
        message.setText("topic 消息。");  
        message.setStringProperty("property", "消息Property");  
        // 发布主题消息  
        producer.send(message);  
        System.out.println("Sent message: " + message.getText());  
        session.close();  
        connection.close();  
    }  
}  

消费者:

import javax.jms.Connection;  
import javax.jms.JMSException;  
import javax.jms.Message;  
import javax.jms.MessageConsumer;  
import javax.jms.MessageListener;  
import javax.jms.Queue;  
import javax.jms.Session;  
import javax.jms.TextMessage;  
  
import org.apache.activemq.ActiveMQConnectionFactory;  
  
public class Consumer {  
  
    public static void main(String[] args) throws JMSException, InterruptedException {  
        // 连接到ActiveMQ服务器  
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.18.67:61616");  
        Connection connection = factory.createConnection();  
        connection.start();  
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);  
        // 创建主题   
        Queue topicA = session.createQueue("Consumer.A.VirtualTopic.TEST");  
        Queue topicB = session.createQueue("Consumer.B.VirtualTopic.TEST");  
        // 消费者A组创建订阅  
        MessageConsumer consumerA1 = session.createConsumer(topicA);  
        consumerA1.setMessageListener(new MessageListener() {  
            // 订阅接收方法  
            public void onMessage(Message message) {  
                TextMessage tm = (TextMessage) message;  
                try {  
                    System.out.println("Received message A1: " + tm.getText()+":"+tm.getStringProperty("property"));  
                } catch (JMSException e) {  
                    e.printStackTrace();  
                }  
            }  
        });  
          
        MessageConsumer consumerA2 = session.createConsumer(topicA);  
        consumerA2.setMessageListener(new MessageListener() {  
            // 订阅接收方法  
            public void onMessage(Message message) {  
                TextMessage tm = (TextMessage) message;  
                try {  
                    System.out.println("Received message A2: " + tm.getText()+":"+tm.getStringProperty("property"));  
                } catch (JMSException e) {  
                    e.printStackTrace();  
                }  
            }  
        });  
          
        //消费者B组创建订阅  
        MessageConsumer consumerB1 = session.createConsumer(topicB);  
        consumerB1.setMessageListener(new MessageListener() {  
            // 订阅接收方法  
            public void onMessage(Message message) {  
                TextMessage tm = (TextMessage) message;  
                try {  
                    System.out.println("Received message B1: " + tm.getText()+":"+tm.getStringProperty("property"));  
                } catch (JMSException e) {  
                    e.printStackTrace();  
                }  
            }  
        });  
        MessageConsumer consumerB2 = session.createConsumer(topicB);  
        consumerB2.setMessageListener(new MessageListener() {  
            // 订阅接收方法  
            public void onMessage(Message message) {  
                TextMessage tm = (TextMessage) message;  
                try {  
                    System.out.println("Received message B2: " + tm.getText()+":"+tm.getStringProperty("property"));  
                } catch (JMSException e) {  
                    e.printStackTrace();  
                }  
            }  
        });  
        session.close();  
        connection.close();  
    }  
}  

组合列队Composite Destinations

组合队列允许用一个虚拟的destination代表多个destinations。这样就可以通过composite destinations在一个操作中同时向多个queue发送消息。

 

客户端实现的方式

在composite destinations中,多个destination之间采用“,”分割。例如:

    Queue queue = new ActiveMQQueue("FOO.A,FOO.B,FOO.C");
  或
  Destination destination = session.createQueue("my-queue,my-queue2");

如果你希望使用不同类型的destination,那么需要加上前缀如queue:// 或topic://,例如:

    Queue queue = new ActiveMQQueue("FOO.A,topic://NOTIFY.FOO.A");

在conf/activemq.xml中的broker下配置实现

<destinationInterceptors>
    <virtualDestinationInterceptor>
      <virtualDestinations>
        <compositeQueue name="MY.QUEUE">
          <forwardTo>
            <queue physicalName="my-queue" />
          <queue physicalName="my-queue2" />
          </forwardTo>
            </compositeQueue>
        </virtualDestinations>
    </virtualDestinationInterceptor>
</destinationInterceptors>

再java代码发送的时候,队列的的名字就用MY.QUEUQ

Configure Startup Destinations

如果需要在ActiveMQ启动的时候,创建Destination的话,可以如下配置conf/activemq.xml的broker下:

<destinations>
    <queue physicalName="FOO.BAR" />
  <topic physicalName="SOME.TOPIC" />
</destinations>

Delete Inactive Destinations

一般情况下,ActiveMQ的queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。当然,也可以通过配置,使得broker可以自动探测到无用

的队列(一定时间内为空的队列)并删除掉,回收响应资源。可以如下配置conf/activemq.xml:

<broker schedulePeriodForDestinationPurge="10000">
    <destinationPolicy>
      <policyMap>
        <policyEntries>
          <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>
      </policyEntries>
    </policyMap>
    </destinationPolicy>
</broker>

说明:

  schedulePeriodForDestinationPurge:设置多长时间检查一次,这里是10秒,默认为0

  inactiveTimoutBeforeGC:设置当Destination为空后,多长时间被删除,这里是30秒,默认为60

  gcInactiveDestinations: 设置删除掉不活动队列,默认为false

Destination Options

队列选项是给consumer在JMS规范之外添加的功能特性,通过在队列名称后面使用类似URL的语法添加多个选项。包括:

 1:consumer.prefetchSize,consumer持有的未确认最大消息数量,默认值 variable

 2:consumer.maximumPendingMessageLimit:用来控制非持久化的topic在存在慢消费者的情况下,丢弃的数量,默认0

 3:consumer.noLocal :默认false

 4:consumer.dispatchAsync :是否异步分发 ,默认true

 5:consumer.retroactive:是否为回溯消费者 ,默认false

 6:consumer.selector:Jms的Selector,默认null

 7:consumer.exclusive:是否为独占消费者 ,默认false

 8:consumer.priority:设置消费者的优先级,默认0

 

使用示例:

queue = new ActiveMQQueue("TEST.QUEUE?consumer.dispatchAsync=false&consumer.prefetchSize=10");
consumer = session.createConsumer(queue);

ActiveX.exe、ActiveX.dll、ActiveX.控件,有啥区别?我要编写网页上的ActiveX该用哪一种?

ActiveX.exe、ActiveX.dll、ActiveX.控件,有啥区别?我要编写网页上的ActiveX该用哪一种?

需要编写ActiveX在网页上使用,通过它调用驱动操作硬件设备,使用VB6.0创建工程时有这三种类型,不清楚应该使用哪一种?

另外,能再说下它们的区别吗?

谢谢!

activiti, 工作流,web 流程设计器,SSM,activiti 工作流

activiti, 工作流,web 流程设计器,SSM,activiti 工作流

本视频为 activiti 工作流的 web 流程设计器整合视频教程

整合 Acitiviti 在线流程设计器 (Activiti-Modeler 5.21.0 官方流程设计器)

本视频共讲了两种整合方式

1. 流程设计器和其它工作流项目分开部署的方式

2. 流程设计器和 SSM 框架项目整合在一起的方式

视频大小 1.13 GB 获取地址 QQ313596790

 

本视频均为本人亲自录的,另免费附加赠送 Activiti 工作流视频(企业开发实例讲解)

(这个赠送的 Activiti 工作流视频里面的流程设计器用的 ecllipse 的插件)

初衷:如今没有像样的 activiti 工作流的 web 流程设计器,要么界面难看,要么没有源码,要么功能缺失。Activiti 官方提供的流程设计器文档和资料较少,根本没有介绍如何把流程设计器独立出来方法,网上资料和文章相对也很少,不能解决问题。特此,本人亲自录一套视频教程来解决此问题

 

以下为赠送的视频截图:

今天关于单击后如何使CSS a:active工作?css点击后的分享就到这里,希望大家有所收获,若想了解更多关于active-directory – 如何使用security / sssd将Active Directory与FreeBSD 10.0集成?、ActiveMQ高级特性:ActiveMQ之虚拟主题、ActiveX.exe、ActiveX.dll、ActiveX.控件,有啥区别?我要编写网页上的ActiveX该用哪一种?、activiti, 工作流,web 流程设计器,SSM,activiti 工作流等相关知识,可以在本站进行查询。

本文标签: