电子邮件模板中的嵌入式媒体查询

时间:2018-07-09 06:08:11

标签: html5 html-email

如何在嵌入式样式标签中添加嵌入式媒体查询?

class TxStatus {
    private:
        int numOperations;
        bool commitStatus;
        pthread_mutex_t statusLock;

    public:
        TxStatus() {
            this->commitStatus = false;
            this->numOperations = 0;
        }
        void addNewOperation() {
            pthread_mutex_lock(&statusLock);
            numOperations++;
            pthread_mutex_unlock(&statusLock);
        }
        void operationCompleted() {
            pthread_mutex_lock(&statusLock);
            numOperations--;
            pthread_mutex_unlock(&statusLock);
        }
        void commit() {
            this->commitStatus = true;
        }

};

class TxManager {
    private:
        unsigned long long globalFrontier;
        unsigned long long txId;

        pthread_mutex_t gfLock;
        pthread_mutex_t txIdLock;

        std::map<unsigned long long, TxStatus> txStatusMap;

    public:
        TxManager() {
            pthread_mutex_lock(&gfLock);
            globalFrontier = 1;
            pthread_mutex_unlock(&gfLock);

            pthread_mutex_lock(&txIdLock);
            txId = 1;
            pthread_mutex_unlock(&txIdLock);
        }

        unsigned long long beginNewTx() {
            pthread_mutex_lock(&txIdLock);
            unsigned long long newId = txId;
            txId++;
            pthread_mutex_unlock(&txIdLock);
            TxStatus statusObj;
            txStatusMap.insert(std::make_pair(newId,statusObj));
            return newId;
        }

        void addUnflushedOperation(unsigned long long txId) {
            txStatusMap[txId].addNewOperation();
        }
        void markOperationAsFlushed(unsigned long long txId) {
            txStatusMap[txId].operationCompleted();
        }
        void markCommitted(unsigned long long txId) {
            txStatusMap[txId].commit();
        }
};


void * thread( void *args){

    TxManager txManager;
    fprintf(stderr,"Inside thread");
    unsigned long long newTxId = txManager.beginNewTx();

    fprintf(stderr,"Tx Started: %d", newTxId );
    txManager.addUnflushedOperation(newTxId);
    pthread_exit(NULL);   

}

int main(){
    pthread_t tx_thread;
    fprintf(stderr,"Inside main");
    int ret = pthread_create(&tx_thread, NULL, thread, NULL);
    if (ret != 0)
    {
        fprintf(stderr,"Error launching thread");
    }else{
        fprintf(stderr,"Thread launched successfully");
    }


    if (pthread_join(tx_thread, NULL) != 0)
    {
        fprintf(stderr,"Join pthread failed");
    }

    return 0;

}

我想在此标记中使用媒体查询,怎么办?

2 个答案:

答案 0 :(得分:1)

否,添加@media查询的正确方法是在CSS文件中使用它们,而不是将它们用作内联样式。

媒体查询需要选择器才能使用。更好的方法是注入一个<style></style>标签,并在那里声明您的媒体查询。

请阅读以供参考 Is it possible to put CSS @media rules inline?

答案 1 :(得分:1)

就像Samuellawrentz所说的那样,无法在线查询媒体,它必须在style中才能起作用。

<style>
@media ...
</style>

可以在campaign monitor的博客中找到可以在电子邮件中使用的CSS的最佳和最新集合。

由于您一直在进行媒体查询,因此现在大约有95%的电子邮件客户端支持它。找到most recent list here